[PATCH 0/3] platform/x86/amd/hsmp: Harden ACPI probe, metric DRAM, and socket teardown

From: Muralidhara M K

Date: Sat Jun 13 2026 - 15:19:00 EST


This series tightens concurrency and lifetime management in the ACPI-backed
AMD HSMP platform path so probe/remove races cannot corrupt global probe state,
leak metric-table DRAM mappings, or tear down shared resources while readers
might still be active.

Patch 1 introduces a dedicated probe mutex around ACPI probe, remove, and
init_acpi(), replacing ad-hoc synchronization on the global is_probed handshake.
lockdep_assert_held() documents the locking contract for init_acpi().

Patch 2 switches metric table DRAM from devm_ioremap() to ioremap() with
explicit init/teardown helpers, and embeds a per-socket mutex for metric reads.
The legacy platform driver wires the same helpers so non-ACPI builds stay
consistent.

Patch 3 replaces the global is_probed flag with miscdevice registration state,
refcounts ACPI socket platform devices with kref, and runs coordinated release
on the final put: misc deregistration when appropriate, metric unmap, and socket
array free. Socket storage uses kcalloc() with careful failure cleanup before
any kref is published.

Muralidhara M K (3):
platform/x86/amd/hsmp: Serialize ACPI HSMP is_probed with a probe
mutex
platform/x86/amd/hsmp: Add explicit metric DRAM mapping and per-socket
mutexes
platform/x86/amd/hsmp: ACPI HSMP refcounted sockets and coordinated
release

drivers/platform/x86/amd/hsmp/acpi.c | 87 +++++++++++++++++++++++-----
drivers/platform/x86/amd/hsmp/hsmp.c | 38 +++++++++++-
drivers/platform/x86/amd/hsmp/hsmp.h | 9 ++-
drivers/platform/x86/amd/hsmp/plat.c | 3 +
4 files changed, 119 insertions(+), 18 deletions(-)

--
2.34.1