In function `scmi_devm_notifier_unregister` the notifier-block parameter was unused and therefore never passed to `devres_release`. This causes the function to always return -ENOENT and fail to unregister the notifier.
In drivers that rely on this function for cleanup this causes unexpected failures including kernel-panic.
This is not needed upstream becaues the bug was fixed in a refactor by commit 264a2c520628 ("firmware: arm_scmi: Simplify scmi_devm_notifier_unregister"). It is needed for the 5.15, 6.1 and 6.6 kernels.
Cc: stable@vger.kernel.org # 5.15.x, 6.1.x, and 6.6.x Fixes: 5ad3d1cf7d34 ("firmware: arm_scmi: Introduce new devres notification ops") Reviewed-by: Dan Carpenter dan.carpenter@linaro.org Reviewed-by: Cristian Marussi cristian.marussi@arm.com Signed-off-by: Amitai Gottlieb amitaig@hailo.ai ---
drivers/firmware/arm_scmi/notify.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/drivers/firmware/arm_scmi/notify.c b/drivers/firmware/arm_scmi/notify.c index 0efd20cd9d69..4782b115e6ec 100644 --- a/drivers/firmware/arm_scmi/notify.c +++ b/drivers/firmware/arm_scmi/notify.c @@ -1539,6 +1539,7 @@ static int scmi_devm_notifier_unregister(struct scmi_device *sdev, dres.handle = sdev->handle; dres.proto_id = proto_id; dres.evt_id = evt_id; + dres.nb = nb; if (src_id) { dres.__src_id = *src_id; dres.src_id = &dres.__src_id;
Hi Amitai,
Not sure if you received my earlier reply as I can't find it on the list and not in sent box as well. But I do see you have cc-ed Greg as requested but didn't consider other requests, hence the confusion.
Hi Greg,
This is first time I am deal with such an issue which exist only in the stable tree as the upstream fixed it in some refactoring before the issue was reported/known. Let us know if this is correct way to add patch to stable tree only or is there something we are missing or need to take care of.
On Tue, Dec 16, 2025 at 11:00:09AM +0200, Amitai Gottlieb wrote:
In function `scmi_devm_notifier_unregister` the notifier-block parameter was unused and therefore never passed to `devres_release`. This causes the function to always return -ENOENT and fail to unregister the notifier.
In drivers that rely on this function for cleanup this causes unexpected failures including kernel-panic.
This is not needed upstream becaues the bug was fixed in a refactor by commit 264a2c520628 ("firmware: arm_scmi: Simplify scmi_devm_notifier_unregister").
It is needed for the 5.15, 6.1 and 6.6 kernels.
I had given you reworded commit message and particularly the above text to be dropped. It makes no sense to add this say is v5.15 kernel e.g.
Cc: stable@vger.kernel.org # 5.15.x, 6.1.x, and 6.6.x Fixes: 5ad3d1cf7d34 ("firmware: arm_scmi: Introduce new devres notification ops") Reviewed-by: Dan Carpenter dan.carpenter@linaro.org Reviewed-by: Cristian Marussi cristian.marussi@arm.com
I had also asked you to add my
Reviewed-by: Sudeep Holla sudeep.holla@arm.com
linux-stable-mirror@lists.linaro.org