summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoland Dreier <rolanddreier@rivian.com>2026-09-09 17:58:59 +0000
committerSudeep Holla <sudeep.holla@kernel.org>2026-09-10 14:02:35 +0100
commit1adabdce41b93ee6f72f29daa1d3e1750e7b7bd1 (patch)
tree34e42d6ef78d19845e59b53357160eff1fcae31e
parent0543fc1443de1a0b04ec64684fb920d79e15de2f (diff)
downloadlinux-next-1adabdce41b93ee6f72f29daa1d3e1750e7b7bd1.tar.gz
linux-next-1adabdce41b93ee6f72f29daa1d3e1750e7b7bd1.zip
firmware: arm_scmi: Fix error path leak in scmi_raw_message_send()
When the is_transport_polling_capable() check fails in scmi_raw_message_send(), it returns -EINVAL without doing scmi_xfer_raw_put(), which will leak a struct scmi_xfer. Reported-by: Sashiko <sashiko-bot@kernel.org> Link: https://sashiko.dev/#/patchset/20260909-scmi-async-done-race-v2-0-cc5dec25c6be%40rivian.com Fixes: 07cb8c324b63 ("firmware: arm_scmi: Add polling support to raw mode") Signed-off-by: Roland Dreier <rolanddreier@rivian.com> Link: https://patch.msgid.link/20260909-scmi-raw-v1-1-de3fa75d2c6f@rivian.com Signed-off-by: Sudeep Holla <sudeep.holla@kernel.org>
-rw-r--r--drivers/firmware/arm_scmi/raw_mode.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/firmware/arm_scmi/raw_mode.c b/drivers/firmware/arm_scmi/raw_mode.c
index 5ee21f6b7001..f01bf2f6ce1d 100644
--- a/drivers/firmware/arm_scmi/raw_mode.c
+++ b/drivers/firmware/arm_scmi/raw_mode.c
@@ -711,6 +711,7 @@ static int scmi_raw_message_send(struct scmi_raw_mode_info *raw,
} else {
dev_err(raw->handle->dev,
"Failed to send RAW message - Polling NOT supported\n");
+ scmi_xfer_raw_put(raw->handle, xfer);
return -EINVAL;
}
}