X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=drivers%2Fdma%2Fsh%2Frcar-dmac.c;h=ffcadca53243d9ef55ea7949a3cef1730b69b7c1;hb=2ceedf97aef41d071d897a6e6aec8c05fb707ec4;hp=d2cb4a0916e62e628a925147cdb5731a1e59d430;hpb=3edc85023a1e1daf22d8e372c5c4f87dc4a04a71;p=mirror_ubuntu-artful-kernel.git diff --git a/drivers/dma/sh/rcar-dmac.c b/drivers/dma/sh/rcar-dmac.c index d2cb4a0916e6..ffcadca53243 100644 --- a/drivers/dma/sh/rcar-dmac.c +++ b/drivers/dma/sh/rcar-dmac.c @@ -1293,6 +1293,9 @@ static unsigned int rcar_dmac_chan_get_residue(struct rcar_dmac_chan *chan, if (desc->hwdescs.use) { dptr = (rcar_dmac_chan_read(chan, RCAR_DMACHCRB) & RCAR_DMACHCRB_DPTR_MASK) >> RCAR_DMACHCRB_DPTR_SHIFT; + if (dptr == 0) + dptr = desc->nchunks; + dptr--; WARN_ON(dptr >= desc->nchunks); } else { running = desc->running;