ASoC: rsnd: return -EIO if rsnd_dmaen_request_channel() failed
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Mon, 6 Nov 2017 01:07:27 +0000 (01:07 +0000)
committerMark Brown <broonie@kernel.org>
Mon, 6 Nov 2017 11:29:44 +0000 (11:29 +0000)
PTR_ERR(NULL) is success. Normally when a function returns both NULL
and error pointers, it means that NULL is not a error.
But, rsnd_dmaen_request_channel() returns NULL if requested resource
was failed.
Let's return -EIO if rsnd_dmaen_request_channel() was failed on
rsnd_dmaen_nolock_start().
This patch fixes commit edce5c496c6a ("ASoC: rsnd: Request/Release DMA
channel eachtime")

Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/dma.c

index 5bc9ec16813cb26b16d229def97e65f86b15a9b6..fd557abfe390a1ea6c6800e9e9836d039bdbcee3 100644 (file)
@@ -219,11 +219,9 @@ static int rsnd_dmaen_nolock_start(struct rsnd_mod *mod,
                                                 dma->mod_from,
                                                 dma->mod_to);
        if (IS_ERR_OR_NULL(dmaen->chan)) {
-               int ret = PTR_ERR(dmaen->chan);
-
                dmaen->chan = NULL;
                dev_err(dev, "can't get dma channel\n");
-               return ret;
+               return -EIO;
        }
 
        return 0;