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

Mario Limonciello posted 6 patches 3 days, 5 hours ago
drivers/platform/x86/amd/pmc/mp1_stb.c | 83 +++++++++++++++++---------
drivers/platform/x86/amd/pmc/pmc.c     |  9 ++-
2 files changed, 63 insertions(+), 29 deletions(-)
[PATCH v2 0/6] Some fixes for amd-pmc handling of the STB
Posted by Mario Limonciello 3 days, 5 hours ago
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@gmail.com>

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