]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
platform/x86: p2sb: On Goldmont only cache P2SB and SPI devfn BAR
authorHans de Goede <hdegoede@redhat.com>
Mon, 4 Mar 2024 13:43:55 +0000 (14:43 +0100)
committerSasha Levin <sashal@kernel.org>
Tue, 26 Mar 2024 22:19:09 +0000 (18:19 -0400)
commit049f043fe8cd759e5245c55e1788b2b664e1fc39
tree77a99d24354ccea924f9766a2f48013e4c178563
parent6a646d9fe8a2bf8d25817ceddf96dfc5eb5446db
platform/x86: p2sb: On Goldmont only cache P2SB and SPI devfn BAR

[ Upstream commit aec7d25b497ce4a8d044e9496de0aa433f7f8f06 ]

On Goldmont p2sb_bar() only ever gets called for 2 devices, the actual P2SB
devfn 13,0 and the SPI controller which is part of the P2SB, devfn 13,2.

But the current p2sb code tries to cache BAR0 info for all of
devfn 13,0 to 13,7 . This involves calling pci_scan_single_device()
for device 13 functions 0-7 and the hw does not seem to like
pci_scan_single_device() getting called for some of the other hidden
devices. E.g. on an ASUS VivoBook D540NV-GQ065T this leads to continuous
ACPI errors leading to high CPU usage.

Fix this by only caching BAR0 info and thus only calling
pci_scan_single_device() for the P2SB and the SPI controller.

Fixes: 5913320eb0b3 ("platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe")
Reported-by: Danil Rybakov <danilrybakov249@gmail.com>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218531
Tested-by: Danil Rybakov <danilrybakov249@gmail.com>
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link: https://lore.kernel.org/r/20240304134356.305375-2-hdegoede@redhat.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/platform/x86/p2sb.c