mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-04 02:02:28 +09:00
ALSA: hda - Fix potential endless loop at applying quirks
commit333f31436dupstream. Since the chained quirks via chained_before flag is applied before the depth check, it may lead to the endless recursive calls, when the chain were set up incorrectly. Fix it by moving the depth check at the beginning of the loop. Fixes:1f57825077("ALSA: hda - Add chained_before flag to the fixup entry") Cc: <stable@vger.kernel.org> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
e2cd24b629
commit
3dd3ca376c
@@ -828,6 +828,8 @@ static void apply_fixup(struct hda_codec *codec, int id, int action, int depth)
|
||||
while (id >= 0) {
|
||||
const struct hda_fixup *fix = codec->fixup_list + id;
|
||||
|
||||
if (++depth > 10)
|
||||
break;
|
||||
if (fix->chained_before)
|
||||
apply_fixup(codec, fix->chain_id, action, depth + 1);
|
||||
|
||||
@@ -867,8 +869,6 @@ static void apply_fixup(struct hda_codec *codec, int id, int action, int depth)
|
||||
}
|
||||
if (!fix->chained || fix->chained_before)
|
||||
break;
|
||||
if (++depth > 10)
|
||||
break;
|
||||
id = fix->chain_id;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user