1
0
Fork 0
alistair23-linux/sound/pci/hda
Takashi Iwai d94815f917 ALSA: hda - Fix endless loop of codec configure
azx_codec_configure() loops over the codecs found on the given
controller via a linked list.  The code used to work in the past, but
in the current version, this may lead to an endless loop when a codec
binding returns an error.

The culprit is that the snd_hda_codec_configure() unregisters the
device upon error, and this eventually deletes the given codec object
from the bus.  Since the list is initialized via list_del_init(), the
next object points to the same device itself.  This behavior change
was introduced at splitting the HD-audio code code, and forgotten to
adapt it here.

For fixing this bug, just use a *_safe() version of list iteration.

Fixes: d068ebc25e ("ALSA: hda - Move some codes up to hdac_bus struct")
Reported-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: <stable@vger.kernel.org>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2017-06-28 12:10:05 +02:00
..
Kconfig ALSA: hda - Clarify CONFIG_SND_HDA_RECONFIG usages 2016-05-09 17:47:37 +02:00
Makefile ALSA: replace CONFIG_PROC_FS with CONFIG_SND_PROC_FS 2015-05-27 21:25:19 +02:00
ca0132_regs.h ALSA: hda: ca0132_regs.h: Fix typo in include guard 2014-08-22 11:24:11 +02:00
dell_wmi_helper.c platform/x86: dell-laptop: import dell_micmute_led_set() from drivers/leds/dell-led.c 2017-03-06 22:07:04 +01:00
hda_auto_parser.c ALSA: hda - A new flag to enforce prefix to each pin 2017-04-10 17:44:39 +02:00
hda_auto_parser.h ALSA: hda - Sort input pins depending on amp caps 2014-09-23 15:57:32 +02:00
hda_beep.c ALSA: hda-beep: Update authors dead email address 2015-06-13 09:13:26 +02:00
hda_beep.h ALSA: hda-beep: Update authors dead email address 2015-06-20 09:24:40 +02:00
hda_bind.c ALSA: hda - Fix missing module loading with model=generic option 2016-01-20 15:56:42 +01:00
hda_codec.c Merge branch 'topic/for-4.12' into for-next 2017-03-20 12:24:26 +01:00
hda_codec.h ALSA: hda - Fix endless loop of codec configure 2017-06-28 12:10:05 +02:00
hda_controller.c ALSA: hda - Fix endless loop of codec configure 2017-06-28 12:10:05 +02:00
hda_controller.h ALSA: hda - Make single_cmd option to stop the fallback mechanism 2017-01-15 09:09:04 +01:00
hda_controller_trace.h ALSA: hda - rename hda_intel_trace.h to hda_controller_trace.h 2015-05-18 10:06:32 +02:00
hda_eld.c ALSA: hda - Use snd_hdac namespace prefix for chmap exported APIs 2016-03-07 15:46:06 +01:00
hda_generic.c ALSA: hda - set input_path bitmap to zero after moving it to new place 2017-06-28 07:09:19 +02:00
hda_generic.h ALSA: hda - Allow to enable/disable vmaster build explicitly 2017-04-10 17:45:27 +02:00
hda_hwdep.c ALSA: hda - Add card field to hda_codec struct 2015-03-03 11:25:16 +01:00
hda_intel.c ALSA: hda - Apply quirks to Broxton-T, too 2017-06-20 07:52:49 +02:00
hda_intel.h ALSA: hda - Spell vga_switcheroo consistently 2015-10-19 11:00:45 +02:00
hda_intel_trace.h ALSA: hda - add hda_intel_trace.h 2015-05-18 10:06:44 +02:00
hda_jack.c ALSA: hda - Fix bad dereference of jack object 2016-02-09 12:16:31 +01:00
hda_jack.h ALSA: hda - Fix bad dereference of jack object 2016-02-09 12:16:31 +01:00
hda_local.h ALSA: hda: make use of core codec fns 2015-10-08 19:09:36 +02:00
hda_proc.c ALSA: hda/proc - Fix racy string access for power states 2015-08-17 15:12:04 +02:00
hda_sysfs.c ALSA: hda - Fix broken reconfig 2016-05-10 10:30:13 +02:00
hda_tegra.c ALSA: hda/tegra: iomem fixups for sparse warnings 2016-06-22 15:19:10 +02:00
local.h ALSA: hda - Move a part of hda_codec stuff into hdac_device 2015-03-23 13:17:17 +01:00
patch_analog.c ALSA: hda - convert to hda_device_id 2015-10-20 10:15:20 +02:00
patch_ca0110.c ALSA: hda - convert to hda_device_id 2015-10-20 10:15:20 +02:00
patch_ca0132.c ALSA: hda/ca0132: Limit values for chip addresses to 32-bit 2017-04-01 10:46:18 +02:00
patch_cirrus.c ALSA: hda - Keep powering up ADCs on Cirrus codecs 2016-04-19 22:07:50 +02:00
patch_cmedia.c ALSA: hda - convert to hda_device_id 2015-10-20 10:15:20 +02:00
patch_conexant.c ALSA: hda - Add mute led support for HP EliteBook 840 G3 2017-05-08 10:56:30 +02:00
patch_hdmi.c ALSA: hda: Move common haswell init to a helper 2017-04-13 10:23:22 +02:00
patch_realtek.c ALSA: hda/realtek - Reorder ALC269 ASUS quirk entries 2017-06-06 12:33:17 +02:00
patch_si3054.c ALSA: hda - convert to hda_device_id 2015-10-20 10:15:20 +02:00
patch_sigmatel.c ALSA: hda - apply STAC_9200_DELL_M22 quirk for Dell Latitude D430 2017-05-23 07:54:59 +02:00
patch_via.c ALSA: hda - convert to hda_device_id 2015-10-20 10:15:20 +02:00
thinkpad_helper.c ALSA: hda - add a new condition to check if it is thinkpad 2016-11-10 09:32:55 +01:00