[PATCH v3] regmap-irq: Add missing kfree()

From: Jiasheng Jiang
Date: Tue Feb 04 2025 - 19:44:06 EST


Add kfree() for "d->main_status_buf" to the error-handling path to prevent
a memory leak.

Fixes: a2d21848d921 ("regmap: regmap-irq: Add main status register support")
Cc: <stable@xxxxxxxxxxxxxxx> # v5.1+
Signed-off-by: Jiasheng Jiang <jiashengjiangcool@xxxxxxxxx>
---
Changelog:

v2 -> v3:

1. Add kfree() to regmap_del_irq_chip().

v1 -> v2:

1. Add a cc: stable line.
---
drivers/base/regmap/regmap-irq.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/base/regmap/regmap-irq.c b/drivers/base/regmap/regmap-irq.c
index 0bcd81389a29..978613407ea3 100644
--- a/drivers/base/regmap/regmap-irq.c
+++ b/drivers/base/regmap/regmap-irq.c
@@ -906,6 +906,7 @@ int regmap_add_irq_chip_fwnode(struct fwnode_handle *fwnode,
kfree(d->wake_buf);
kfree(d->mask_buf_def);
kfree(d->mask_buf);
+ kfree(d->main_status_buf);
kfree(d->status_buf);
kfree(d->status_reg_buf);
if (d->config_buf) {
@@ -981,6 +982,7 @@ void regmap_del_irq_chip(int irq, struct regmap_irq_chip_data *d)
kfree(d->wake_buf);
kfree(d->mask_buf_def);
kfree(d->mask_buf);
+ kfree(d->main_status_buf);
kfree(d->status_reg_buf);
kfree(d->status_buf);
if (d->config_buf) {
--
2.25.1