reset: sunxi: fix memory region leak on ioremap failure

Message ID tencent_2C7697B076D53BBE62D99B7CD15E77A20C07@qq.com (mailing list archive)
State New
Headers
Series reset: sunxi: fix memory region leak on ioremap failure |

Commit Message

Zhao Dongdong June 17, 2026, 3:16 a.m. UTC
From: Zhao Dongdong <zhaodongdong@kylinos.cn>

In sunxi_reset_init(), when ioremap() fails, the memory region obtained
via request_mem_region() is not released, leading to a resource leak.

Add an err_mem_region label to properly release the memory region before
freeing the data structure.

Fixes: 8f1ae77f4666 ("reset: Add Allwinner SoCs Reset Controller Driver")
Cc: stable@vger.kernel.org
Signed-off-by: Zhao Dongdong <zhaodongdong@kylinos.cn>
---
 drivers/reset/reset-sunxi.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
  

Comments

Jernej Škrabec June 17, 2026, 5:09 p.m. UTC | #1
Dne sreda, 17. junij 2026 ob 05:16:27 Srednjeevropski poletni čas je Zhao Dongdong napisal(a):
> From: Zhao Dongdong <zhaodongdong@kylinos.cn>
> 
> In sunxi_reset_init(), when ioremap() fails, the memory region obtained
> via request_mem_region() is not released, leading to a resource leak.
> 
> Add an err_mem_region label to properly release the memory region before
> freeing the data structure.
> 
> Fixes: 8f1ae77f4666 ("reset: Add Allwinner SoCs Reset Controller Driver")
> Cc: stable@vger.kernel.org
> Signed-off-by: Zhao Dongdong <zhaodongdong@kylinos.cn>

Acked-by: Jernej Skrabec <jernej.skrabec@gmail.com>

Best regards,
Jernej
  
Philipp Zabel June 18, 2026, 9:49 a.m. UTC | #2
On Mi, 2026-06-17 at 11:16 +0800, Zhao Dongdong wrote:
> From: Zhao Dongdong <zhaodongdong@kylinos.cn>
> 
> In sunxi_reset_init(), when ioremap() fails, the memory region obtained
> via request_mem_region() is not released, leading to a resource leak.
> 
> Add an err_mem_region label to properly release the memory region before
> freeing the data structure.
> 
> Fixes: 8f1ae77f4666 ("reset: Add Allwinner SoCs Reset Controller Driver")
> Cc: stable@vger.kernel.org
> Signed-off-by: Zhao Dongdong <zhaodongdong@kylinos.cn>

Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de>

regards
Philipp
  
Philipp Zabel July 2, 2026, 3:53 p.m. UTC | #3
On Mi, 2026-06-17 at 11:16 +0800, Zhao Dongdong wrote:
> From: Zhao Dongdong <zhaodongdong@kylinos.cn>
> 
> In sunxi_reset_init(), when ioremap() fails, the memory region obtained
> via request_mem_region() is not released, leading to a resource leak.
> 
> Add an err_mem_region label to properly release the memory region before
> freeing the data structure.
[...]

Applied to reset/fixes, thanks!

[1/1] reset: sunxi: fix memory region leak on ioremap failure
      https://git.kernel.org/pub/scm/linux/kernel/git/pza/linux.git/commit/?id=1a8c89f8c112

regards
Philipp
  

Patch

diff --git a/drivers/reset/reset-sunxi.c b/drivers/reset/reset-sunxi.c
index 2544de6576e4..2f6df7707cad 100644
--- a/drivers/reset/reset-sunxi.c
+++ b/drivers/reset/reset-sunxi.c
@@ -44,7 +44,7 @@  static int sunxi_reset_init(struct device_node *np)
 	data->membase = ioremap(res.start, size);
 	if (!data->membase) {
 		ret = -ENOMEM;
-		goto err_alloc;
+		goto err_mem_region;
 	}
 
 	spin_lock_init(&data->lock);
@@ -57,6 +57,8 @@  static int sunxi_reset_init(struct device_node *np)
 
 	return reset_controller_register(&data->rcdev);
 
+err_mem_region:
+	release_mem_region(res.start, size);
 err_alloc:
 	kfree(data);
 	return ret;