android_kernel_samsung_a7y1.../drivers/dma
Geert Uytterhoeven 95a32697bf dmaengine: rcar-dmac: Reject zero-length slave DMA requests
[ Upstream commit 78efb76ab4dfb8f74f290ae743f34162cd627f19 ]

While the .device_prep_slave_sg() callback rejects empty scatterlists,
it still accepts single-entry scatterlists with a zero-length segment.
These may happen if a driver calls dmaengine_prep_slave_single() with a
zero len parameter.  The corresponding DMA request will never complete,
leading to messages like:

    rcar-dmac e7300000.dma-controller: Channel Address Error happen

and DMA timeouts.

Although requesting a zero-length DMA request is a driver bug, rejecting
it early eases debugging.  Note that the .device_prep_dma_memcpy()
callback already rejects requests to copy zero bytes.

Reported-by: Eugeniu Rosca <erosca@de.adit-jv.com>
Analyzed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-04-06 20:26:51 +02:00
..
bestcomm A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
dw A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
hsu A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ioat A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ipu A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ppc4xx A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
sh dmaengine: rcar-dmac: Reject zero-length slave DMA requests 2020-04-06 20:26:51 +02:00
xilinx A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
acpi-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
amba-pl08x.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
at_hdmac_regs.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
at_hdmac.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
at_xdmac.c dmaengine: at_xdmac: remove BUG_ON macro in tasklet 2020-04-06 18:18:35 +02:00
bcm2835-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
coh901318_lli.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
coh901318.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
coh901318.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
cppi41.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
dma-axi-dmac.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
dma-jz4740.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
dma-jz4780.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
dmaengine.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
dmaengine.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
dmatest.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
edma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ep93xx_dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
fsl_raid.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
fsl_raid.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
fsl-edma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
fsldma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
fsldma.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
idma64.c dmaengine: idma64: Use actual device for DMA transfers 2020-04-06 19:02:35 +02:00
idma64.h dmaengine: idma64: Use actual device for DMA transfers 2020-04-06 19:02:35 +02:00
img-mdc-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
imx-dma.c dmaengine: imx-dma: fix warning comparison of distinct pointer types 2020-04-06 14:52:22 +02:00
imx-sdma.c dmaengine: imx-sdma: fix use-after-free on probe error path 2020-04-06 19:54:01 +02:00
iop-adma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
k3dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
Kconfig A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
lpc18xx-dmamux.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
Makefile A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mic_x100_dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mic_x100_dma.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mmp_pdma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mmp_tdma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
moxart-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mpc512x_dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mv_xor.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mv_xor.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
mxs-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
nbpfaxi.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
of-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
omap-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
pch_dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
pl330.c dmaengine: pl330: _stop: clear interrupt status 2020-04-06 18:17:58 +02:00
pxa_dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
qcom_bam_dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
s3c24xx-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
sa11x0-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
samsung-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
sirf-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ste_dma40_ll.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ste_dma40_ll.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
ste_dma40.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
sun4i-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
sun6i-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
tegra20-apb-dma.c dmaengine: tegra: avoid overflow of byte tracking 2020-04-06 14:52:41 +02:00
ti-dma-crossbar.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
timb_dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
TODO A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
txx9dmac.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
txx9dmac.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
virt-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
virt-dma.h A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
xgene-dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30
zx296702_dma.c A750FXXU4CTBC 2020-03-27 21:51:54 +05:30