[PATCH v2 0/6] Some fixes for amd-pmc handling of the STB

From: Mario Limonciello

Date: Tue Jul 21 2026 - 15:04:28 EST


Not all platforms support STB, and by activating it on a platform without
support a few bugs were exposed.

This series cleans them up and also cleans up some existing cleanup path
errors.

Cc: Francis De Brabandere <francisdb@xxxxxxxxx>

v1->v2:
Addresses review feedback from Ilpo Järvinen and the Sashiko automated
review (https://sashiko.dev/).

- Split the v1 "Fix error handling in amd_stb_s2d_init()" patch into two,
per Ilpo's request to land the msg_port restoration first and the SMU
error handling on top:
* "Restore msg_port on amd_stb_s2d_init() error paths" (msg_port only)
* "Propagate SMU errors and validate S2D address" (error handling)

- Folded the v1 "Validate S2D physical address before ioremap" patch into
"Propagate SMU errors and validate S2D address" - checking the SMU
return values and rejecting a zero address are one logical fix.

- New patch "Fix msg_port restoration in amd_stb_debugfs_open_v2()":
the same stuck-on-MSG_PORT_S2D bug exists in the debugfs read path
(Ilpo noted another site needs the same fix; also flagged by Sashiko).

- New patch "Only expose stb_read after telemetry buffer is mapped":
fixes a NULL dev->stb_virt_addr dereference on read (Sashiko, HIGH).
Ordered before "Do not fail probe" so that making STB init non-fatal
never leaves a readable stb_read node backed by an unmapped buffer.

- Reordered the series so every patch is correct on its own:
the msg_port/SMU fixes first, the stb_read hardening before the
behavioural "Do not fail probe" change, and the LPS0/debugfs leak fix
kept as a standalone stable backport (its now-unreachable unwind is
removed by "Do not fail probe", as noted in that patch).

- No functional change to the v1 "Fix LPS0 and debugfs leaks" and
"Do not fail probe" patches; only their position in the series.

v1->v2 patch mapping:
v1 1/4 Fix LPS0 and debugfs leaks -> v2 5/6 (unchanged)
v1 2/4 Fix error handling -> v2 1/6 + 3/6 (split)
v1 3/4 Do not fail probe -> v2 6/6 (unchanged)
v1 4/4 Validate S2D physical address -> v2 3/6 (merged)
(new) -> v2 2/6 msg_port in debugfs_open_v2
(new) -> v2 4/6 expose stb_read after map

Mario Limonciello (6):
platform/x86/amd/pmc: Restore msg_port on amd_stb_s2d_init() error
paths
platform/x86/amd/pmc: Fix msg_port restoration in
amd_stb_debugfs_open_v2()
platform/x86/amd/pmc: Propagate SMU errors and validate S2D address
platform/x86/amd/pmc: Only expose stb_read after telemetry buffer is
mapped
platform/x86/amd/pmc: Fix LPS0 and debugfs leaks when STB init fails
platform/x86/amd/pmc: Do not fail probe when STB init fails

drivers/platform/x86/amd/pmc/mp1_stb.c | 83 +++++++++++++++++---------
drivers/platform/x86/amd/pmc/pmc.c | 9 ++-
2 files changed, 63 insertions(+), 29 deletions(-)

--
2.43.0