linux/sound/pci/hda
Lukas Wunner 6e8aeda224 ALSA: hda/hdmi - Fix duplicate unref of pci_dev
Nicholas Johnson reports a null pointer deref as well as a refcount
underflow upon hot-removal of a Thunderbolt-attached AMD eGPU.
He's bisected the issue down to commit 586bc4aab8 ("ALSA: hda/hdmi -
fix vgaswitcheroo detection for AMD").

The commit iterates over PCI devices using pci_get_class() and
unreferences each device found, even though pci_get_class()
subsequently unreferences the device as well.  Fix it.

Fixes: 586bc4aab8 ("ALSA: hda/hdmi - fix vgaswitcheroo detection for AMD")
Link: https://lore.kernel.org/r/PSXP216MB0438BFEAA0617283A834E11580580@PSXP216MB0438.KORP216.PROD.OUTLOOK.COM/
Reported-and-tested-by: Nicholas Johnson <nicholas.johnson-opensource@outlook.com.au>
Signed-off-by: Lukas Wunner <lukas@wunner.de>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
Cc: Alexander Deucher <alexander.deucher@amd.com>
Cc: Bjorn Helgaas <helgaas@kernel.org>
Link: https://lore.kernel.org/r/77aa6c01aefe1ebc4004e87b0bc714f2759f15c4.1575985006.git.lukas@wunner.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
2019-12-10 18:20:31 +01:00
..
ca0132_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
hda_auto_parser.c ASoC: Updates for v5.4 2019-09-10 13:03:08 +02:00
hda_auto_parser.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 46 2019-05-24 17:27:12 +02:00
hda_beep.c
hda_beep.h
hda_bind.c ALSA: hda - Fix pending unsol events at shutdown 2019-10-28 12:44:28 +01:00
hda_codec.c Merge branch 'asoc-5.4' into asoc-next 2019-09-09 14:55:20 +01:00
hda_controller_trace.h
hda_controller.c ALSA: pci: Drop superfluous snd_pcm_sgbuf_ops_page 2019-11-06 15:47:43 +01:00
hda_controller.h Merge branch 'asoc-5.4' into asoc-next 2019-09-09 14:55:20 +01:00
hda_eld.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
hda_generic.c ALSA: hda/realtek - Fix overridden device-specific initialization 2019-08-30 12:03:38 +02:00
hda_generic.h ALSA: hda/realtek - Fix overridden device-specific initialization 2019-08-30 12:03:38 +02:00
hda_hwdep.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
hda_intel_trace.h
hda_intel.c ALSA: hda/hdmi - Fix duplicate unref of pci_dev 2019-12-10 18:20:31 +01:00
hda_intel.h ALSA: hda - Allow runtime PM for controller if component notifier is used 2019-08-27 16:37:50 +02:00
hda_jack.c ALSA: hda - Add DP-MST jack support 2019-11-19 11:51:07 +01:00
hda_jack.h ALSA: hda - Add DP-MST jack support 2019-11-19 11:51:07 +01:00
hda_local.h ALSA: hda - Expand pin_match function to match upcoming new tbls 2019-08-16 11:59:30 +02:00
hda_proc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
hda_sysfs.c treewide: Add SPDX license identifier for missed files 2019-05-21 10:50:45 +02:00
hda_tegra.c ALSA: hda: Direct MMIO accesses 2019-08-08 16:36:18 +02:00
hp_x360_helper.c
Kconfig ALSA: hda: add Intel DSP configuration / probe code 2019-10-23 06:31:37 +02:00
Makefile
patch_analog.c ALSA: hda - Add laptop imic fixup for ASUS M9V laptop 2019-09-20 15:53:24 +02:00
patch_ca0110.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
patch_ca0132.c ALSA: hda/ca0132 - Fix possible workqueue stall 2019-11-05 14:44:12 +01:00
patch_cirrus.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
patch_cmedia.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
patch_conexant.c ALSA: hda - Add mute led support for HP ProBook 645 G4 2019-11-20 09:42:52 +01:00
patch_hdmi.c ALSA: hda: hdmi - Keep old slot assignment behavior for Intel platforms 2019-12-03 20:33:05 +01:00
patch_realtek.c ALSA: hda - fixup for the bass speaker on Lenovo Carbon X1 7th gen 2019-11-29 15:43:19 +01:00
patch_si3054.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
patch_sigmatel.c ALSA: hda/sigmatel - remove unused variable 'stac9200_core_init' 2019-08-13 17:44:48 +02:00
patch_via.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 32 2019-05-24 17:27:10 +02:00
thinkpad_helper.c