The default index 1 was used as the loop was terminated before the following code could be reached:
if (mod[i] == this) index = i;
Signed-off-by: Jürg Billeter j@bitron.ch --- sound/soc/sh/rcar/core.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c index 4e86265..d737fea 100644 --- a/sound/soc/sh/rcar/core.c +++ b/sound/soc/sh/rcar/core.c @@ -295,9 +295,11 @@ static void rsnd_dma_of_name(struct rsnd_dma *dma, mod[0] = NULL; /* for "mem" */ index = 1; for (i = 1; i < MOD_MAX; i++) { - if (!src) { - mod[i] = ssi; + if (!ssi) { break; + } else if (!src) { + mod[i] = ssi; + ssi = NULL; } else if (!dvc) { mod[i] = src; src = NULL;