This series addresses two issues in the stratix10 service layer's
asynchronous transaction handling.
Patch 1 adds INTEL_SIP_SMC_STATUS_NO_RESPONSE (0x3) to the SMC status
definitions and handles it in stratix10_svc_async_poll() alongside
INTEL_SIP_SMC_STATUS_BUSY. Both statuses indicate the Secure Device
Manager has not yet produced a response and should cause callers to
retry rather than treating the poll as a hard failure. Without this,
the unrecognised status code falls through to the error path and is
mapped to -EINVAL, making "not ready yet" indistinguishable from a
real error.
Patch 2 fixes the teardown ordering in stratix10_svc_drv_remove()
reported by sashiko (https://lore.kernel.org/all/cd6460b2-7f53-4ac6-8f68-172e7853f63f@kernel.org/).
Previously, stratix10_svc_async_exit() was called before client
devices were unregistered, leaving a window where child devices could
issue service requests after the async infrastructure had already been
destroyed. The fix unregisters client devices first so all in-flight
calls drain before the underlying channels and threads are torn down.
---
changelog:
v1->v2:
* update commit message to include Fixes tag and Cc: stable@vger.kernel.org.
---
Adrian Ng Ho Yin (2):
firmware: stratix10-svc: handle NO_RESPONSE in async poll
firmware: stratix10-svc: fix teardown order in remove to prevent race
drivers/firmware/stratix10-svc.c | 9 +++++----
include/linux/firmware/intel/stratix10-smc.h | 4 ++++
2 files changed, 9 insertions(+), 4 deletions(-)
--
2.49.GIT