[PATCH 0/9] firmware: arm_scmi: Fix SCMI core cleanup paths
Sudeep Holla <[email protected]> Tue, 30 Jun 2026 10:05:56 +0100
| Newsgroups | org.kernel.vger.arm-scmi,org.infradead.lists.linux-arm-kernel |
|---|---|
| Message-ID | <[email protected]> |
This series fixes a set of SCMI core and mailbox transport lifetime issues found around device creation, channel setup failure and teardown paths. They were mostly found by Sashiko[1] when reviewing some other series. Posting these separately as the issues or the fixes are not related to [2] Here is the attempt to fix them, some of them can be dropped if it is too theoretical. I have addressed all the issues that made sense to me at the time of reading the report. The fixes tighten ownership of OF node references, make transport devices reachable by explicit teardown without exposing them to normal SCMI driver binding, and ensure partially initialized channels are unwound consistently on probe/setup failures. The series also fixes races around requested-device notifier teardown and RCU-protected protocol lookups. The mailbox transport fixes are split by the feature that introduced the leaking channel: one for unidirectional mailbox channels and one for P2A completion channels. Summary: - Fix OF node reference ownership for generated SCMI devices. - Allow explicit teardown lookup of internal transport devices. - Clean up TX/RX channels when SCMI channel setup fails midway. - Fix SCMI device lifetime handling around child lookup and bus ID reuse. - Free transport resources when IDR insertion fails after channel setup. - Unregister requested-device notifier before active protocol IDR teardown. - Unwind mailbox channels on TX receiver and P2A receiver setup failures. - Protect requested-device protocol lookup with RCU. Signed-off-by: Sudeep Holla <[email protected]> [1] https://sashiko.dev/#/patchset/[email protected] [2] https://patch.msgid.link/[email protected] --- Sudeep Holla (9): firmware: arm_scmi: Fix OF node reference handling firmware: arm_scmi: Fix transport device teardown lookup firmware: arm_scmi: Clean up channels on setup failure firmware: arm_scmi: Fix SCMI device destroy lifetimes firmware: arm_scmi: Free transport channel on IDR failure firmware: arm_scmi: Unregister device notifier before IDR teardown firmware: arm_scmi: Unwind TX receiver mailbox setup failure firmware: arm_scmi: Unwind P2A receiver mailbox setup failure firmware: arm_scmi: Protect device request lookup with RCU drivers/firmware/arm_scmi/bus.c | 50 +++++++++++++++++--------- drivers/firmware/arm_scmi/common.h | 2 ++ drivers/firmware/arm_scmi/driver.c | 21 ++++++----- drivers/firmware/arm_scmi/transports/mailbox.c | 12 +++++-- 4 files changed, 57 insertions(+), 28 deletions(-) --- base-commit: dc59e4fea9d83f03bad6bddf3fa2e52491777482 change-id: 20260629-scmi_core_fixes-da3cd753b4ea -- Regards, Sudeep