2012-11-28 06:49:51

by Guennadi Liakhovetski

[permalink] [raw]
Subject: [PATCH 3.7] dma: sh: Don't use ENODEV for failing slave lookup

If dmaengine driver's .device_alloc_chan_resources() method returns -ENODEV,
dma_request_channel() will decide, that the driver has been removed and will
remove the device from its list. To prevent this use ENXIO if a slave lookup
fails.

Reported-by: Kuninori Morimoto <[email protected]>
Signed-off-by: Guennadi Liakhovetski <[email protected]>
---

Hi Vinod

Could you please push this patch to Linus for 3.7 ASAP? I think, it should
also go to "stable."

Thanks
Guennadi

drivers/dma/sh/shdma.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/dma/sh/shdma.c b/drivers/dma/sh/shdma.c
index f41bcc5..910d878 100644
--- a/drivers/dma/sh/shdma.c
+++ b/drivers/dma/sh/shdma.c
@@ -326,7 +326,7 @@ static int sh_dmae_set_slave(struct shdma_chan *schan,
shdma_chan);
const struct sh_dmae_slave_config *cfg = dmae_find_slave(sh_chan, slave_id);
if (!cfg)
- return -ENODEV;
+ return -ENXIO;

if (!try)
sh_chan->config = cfg;
--
1.7.2.5