Skip to content

Commit e01ce67

Browse files
gscuiandersson
authored andcommitted
remoteproc: sysmon: fix memory leak in qcom_add_sysmon_subdev()
The kfree() should be called when of_irq_get_byname() fails or devm_request_threaded_irq() fails in qcom_add_sysmon_subdev(), otherwise there will be a memory leak, so add kfree() to fix it. Fixes: 027045a ("remoteproc: qcom: Add shutdown-ack irq") Signed-off-by: Gaosheng Cui <[email protected]> Signed-off-by: Bjorn Andersson <[email protected]> Link: https://lore.kernel.org/r/[email protected]
1 parent 7bd156c commit e01ce67

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

drivers/remoteproc/qcom_sysmon.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,9 @@ struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc,
652652
if (sysmon->shutdown_irq != -ENODATA) {
653653
dev_err(sysmon->dev,
654654
"failed to retrieve shutdown-ack IRQ\n");
655-
return ERR_PTR(sysmon->shutdown_irq);
655+
ret = sysmon->shutdown_irq;
656+
kfree(sysmon);
657+
return ERR_PTR(ret);
656658
}
657659
} else {
658660
ret = devm_request_threaded_irq(sysmon->dev,
@@ -663,6 +665,7 @@ struct qcom_sysmon *qcom_add_sysmon_subdev(struct rproc *rproc,
663665
if (ret) {
664666
dev_err(sysmon->dev,
665667
"failed to acquire shutdown-ack IRQ\n");
668+
kfree(sysmon);
666669
return ERR_PTR(ret);
667670
}
668671
}

0 commit comments

Comments
 (0)