mirror of
https://github.com/torvalds/linux
synced 2024-09-06 18:01:05 +00:00
ALSA: hda/i915: Fix one too many pci_dev_put()
pci_get_class() will already unref the pci device passed as argument.
So if it's unconditionally unref'ed, even if the loop is not stopped,
there will be one too many unref for each device not matched.
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/5701
Fixes: c9db8a30d9
("ALSA: hda/i915 - skip acomp init if no matching display")
Signed-off-by: Lucas De Marchi <lucas.demarchi@intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@linux.intel.com>
Link: https://lore.kernel.org/r/20220416064418.2364582-1-lucas.demarchi@intel.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
6624fb41f5
commit
00fd7cfad0
|
@ -127,11 +127,10 @@ static int i915_gfx_present(struct pci_dev *hdac_pci)
|
|||
display_dev = pci_get_class(class, display_dev);
|
||||
|
||||
if (display_dev && display_dev->vendor == PCI_VENDOR_ID_INTEL &&
|
||||
connectivity_check(display_dev, hdac_pci))
|
||||
connectivity_check(display_dev, hdac_pci)) {
|
||||
pci_dev_put(display_dev);
|
||||
match = true;
|
||||
|
||||
pci_dev_put(display_dev);
|
||||
|
||||
}
|
||||
} while (!match && display_dev);
|
||||
|
||||
return match;
|
||||
|
|
Loading…
Reference in a new issue