mbox series

[v4,0/4] p2sb: Fix unexpected P2SB device disappearance

Message ID 20241128002836.373745-1-shinichiro.kawasaki@wdc.com (mailing list archive)
Headers show
Series p2sb: Fix unexpected P2SB device disappearance | expand

Message

Shinichiro Kawasaki Nov. 28, 2024, 12:28 a.m. UTC
When the BIOS does not hide the P2SB device, it is expected to be visible from
userspace. However, the P2SB device disappears since the commit 5913320eb0b3
("platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe") [1]. This
series addresses the problem. The first three patches are preliminary
refactoring for the fix. The last patch resolves the issue by caching the P2SB
device resources only if the BIOS hides the P2SB device.

[1] https://lore.kernel.org/lkml/ZzTI+biIUTvFT6NC@goliath/

Changes from v3:
* 4th patch: Added the missing ret=0 initialization in p2sb_cache_resources()
* Added Reviewed-by tags
* Link to v3: https://lore.kernel.org/platform-driver-x86/20241127060055.357498-1-shinichiro.kawasaki@wdc.com/

Changes from v2:
* Renamed the global flag from p2sb_hidden to p2sb_hidden_by_bios
* Moved P2SB hide and unhide code to p2sb_scan_and_cache()
* Introduced two helper functions which are called from p2sb_bar()
* Separated the preliminary refactoring work to 3 new patches
* Link to v2: https://lore.kernel.org/platform-driver-x86/20241125042326.304780-1-shinichiro.kawasaki@wdc.com/

Changes from v1:
* Put back P2SBC_HIDE flag reference code in the rescan_remove lock region
* Do not cache resources when the P2SB device is not hidden
* Added the Reported-by tag
* Link to v1: https://lore.kernel.org/platform-driver-x86/20241120064055.245969-1-shinichiro.kawasaki@wdc.com/

Shin'ichiro Kawasaki (4):
  p2sb: Factor out p2sb_read_from_cache()
  p2sb: Introduce the global flag p2sb_hidden_by_bios
  p2sb: Move P2SB hide and unhide code to p2sb_scan_and_cache()
  p2sb: Do not scan and remove the P2SB device when it is unhidden

 drivers/platform/x86/p2sb.c | 79 ++++++++++++++++++++++++++-----------
 1 file changed, 56 insertions(+), 23 deletions(-)

Comments

Ilpo Järvinen Dec. 10, 2024, 2:39 p.m. UTC | #1
On Thu, 28 Nov 2024 09:28:32 +0900, Shin'ichiro Kawasaki wrote:

> When the BIOS does not hide the P2SB device, it is expected to be visible from
> userspace. However, the P2SB device disappears since the commit 5913320eb0b3
> ("platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe") [1]. This
> series addresses the problem. The first three patches are preliminary
> refactoring for the fix. The last patch resolves the issue by caching the P2SB
> device resources only if the BIOS hides the P2SB device.
> 
> [...]


Thank you for your contribution, it has been applied to my local
review-ilpo-fixes branch. Note it will show up in the public
platform-drivers-x86/review-ilpo-fixes branch only once I've pushed my
local branch there, which might take a while.

The list of commits applied:
[1/4] p2sb: Factor out p2sb_read_from_cache()
      commit: 9244524d60ddea55f4df54c51200e8fef2032447
[2/4] p2sb: Introduce the global flag p2sb_hidden_by_bios
      commit: ae3e6ebc5ab046d434c05c58a3e3f7e94441fec2
[3/4] p2sb: Move P2SB hide and unhide code to p2sb_scan_and_cache()
      commit: 0286070c74ee48391fc07f7f617460479472d221
[4/4] p2sb: Do not scan and remove the P2SB device when it is unhidden
      commit: 360c400d0f568636c1b98d1d5f9f49aa3d420c70

--
 i.
Daniel Walker (danielwa) Dec. 12, 2024, 7:02 p.m. UTC | #2
On Thu, Nov 28, 2024 at 09:28:32AM +0900, Shin'ichiro Kawasaki wrote:
> When the BIOS does not hide the P2SB device, it is expected to be visible from
> userspace. However, the P2SB device disappears since the commit 5913320eb0b3
> ("platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe") [1]. This
> series addresses the problem. The first three patches are preliminary
> refactoring for the fix. The last patch resolves the issue by caching the P2SB
> device resources only if the BIOS hides the P2SB device.
> 
> [1] https://lore.kernel.org/lkml/ZzTI+biIUTvFT6NC@goliath/
> 

I tested the complete series and it restores the previously hidden device. In
other words it's working for me.

Daniel