]> asedeno.scripts.mit.edu Git - linux.git/commit
ASoC: fix oops w/ for_each_rtd_codec_dai_rollback() macro
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Fri, 26 Oct 2018 21:54:43 +0000 (16:54 -0500)
committerMark Brown <broonie@kernel.org>
Tue, 30 Oct 2018 15:31:11 +0000 (15:31 +0000)
commit23cb2d04db54535df65edbbebbca89f2590f08bd
treec2bc64504ac370c39323c4d97cd03abd2952be4f
parent409fa67a7f4a68f6990955849c22eaca589f18c0
ASoC: fix oops w/ for_each_rtd_codec_dai_rollback() macro

A kernel oops happens on an error case (usual missing BE mixer
configuration required by Intel SST driver). Git bisect points to this
macro and an operator precedence issue.

for (; ((i--) >= 0) && ((dai) = rtd->codec_dais[i]);)

The initial code replaced by this macro was
while (--i >= 0) {
codec_dai = rtd->codec_dais[i];

Fix the C operator precedence difference by reverting to pre-decrement

Fixes: 0b7990e3897 ('ASoC: add for_each_rtd_codec_dai() macro')
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
include/sound/soc.h