ASoC: dmaengine: fix deferred probe detection
authorStephen Warren <swarren@nvidia.com>
Wed, 11 Dec 2013 18:20:50 +0000 (11:20 -0700)
committerMark Brown <broonie@linaro.org>
Wed, 11 Dec 2013 22:45:36 +0000 (22:45 +0000)
Check the return value of dma_request_slave_channel_reason() to see if
deferred probe happens, not the variable the return value will be
assigned to later.

Reported-by: kbuild test robot <fengguang.wu@intel.com>
Fixes: 5eda87b890f8 ("ASoC: dmaengine: support deferred probe for DMA channels")
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Signed-off-by: Mark Brown <broonie@linaro.org>
sound/soc/soc-generic-dmaengine-pcm.c

index 585eaa69e8c34d93a2942f3d40d702bca7b80720..7483922f6ee3f4f8a523b05a00f8ce1f1e2a94e2 100644 (file)
@@ -321,7 +321,7 @@ static int dmaengine_pcm_request_chan_of(struct dmaengine_pcm *pcm,
                        name = config->chan_names[i];
                chan = dma_request_slave_channel_reason(dev, name);
                if (IS_ERR(chan)) {
-                       if (PTR_ERR(pcm->chan[i]) == -EPROBE_DEFER)
+                       if (PTR_ERR(chan) == -EPROBE_DEFER)
                                return -EPROBE_DEFER;
                        pcm->chan[i] = NULL;
                } else {