[alsa-devel] [PATCH] ASoC: rsnd: fixup wrong snd_soc_dai_driver pointer access

Kuninori Morimoto kuninori.morimoto.gx at renesas.com
Tue Dec 1 09:31:38 CET 2015


From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>

drv pointer should be "base + offset" instead of
"current + offset". This patch fixup this issue, otherwise
third and subsequent pointer will be broken

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
---
 sound/soc/sh/rcar/core.c | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c
index b187a89..f1d7af1 100644
--- a/sound/soc/sh/rcar/core.c
+++ b/sound/soc/sh/rcar/core.c
@@ -603,7 +603,7 @@ static int rsnd_dai_probe(struct rsnd_priv *priv)
 	struct device_node *playback, *capture;
 	struct rsnd_dai_stream *io_playback;
 	struct rsnd_dai_stream *io_capture;
-	struct snd_soc_dai_driver *drv;
+	struct snd_soc_dai_driver *rdrv, *drv;
 	struct rsnd_dai *rdai;
 	struct device *dev = rsnd_priv_to_dev(priv);
 	int nr, dai_i, io_i, np_i;
@@ -616,15 +616,15 @@ static int rsnd_dai_probe(struct rsnd_priv *priv)
 		goto rsnd_dai_probe_done;
 	}
 
-	drv  = devm_kzalloc(dev, sizeof(*drv)  * nr, GFP_KERNEL);
+	rdrv = devm_kzalloc(dev, sizeof(*rdrv) * nr, GFP_KERNEL);
 	rdai = devm_kzalloc(dev, sizeof(*rdai) * nr, GFP_KERNEL);
-	if (!drv || !rdai) {
+	if (!rdrv || !rdai) {
 		ret = -ENOMEM;
 		goto rsnd_dai_probe_done;
 	}
 
 	priv->rdai_nr	= nr;
-	priv->daidrv	= drv;
+	priv->daidrv	= rdrv;
 	priv->rdai	= rdai;
 
 	/*
@@ -633,7 +633,7 @@ static int rsnd_dai_probe(struct rsnd_priv *priv)
 	dai_i = 0;
 	for_each_child_of_node(dai_node, dai_np) {
 		rdai		= rsnd_rdai_get(priv, dai_i);
-		drv		= drv + dai_i;
+		drv		= rdrv + dai_i;
 		io_playback	= &rdai->playback;
 		io_capture	= &rdai->capture;
 
-- 
1.9.1



More information about the Alsa-devel mailing list