public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/6] clk: at91: clk-h32mxclk: fix memory leak
@ 2015-06-26 12:33 David Dueck
  2015-06-26 12:33 ` [PATCH 2/6] clk: at91: clk-main: " David Dueck
                   ` (5 more replies)
  0 siblings, 6 replies; 7+ messages in thread
From: David Dueck @ 2015-06-26 12:33 UTC (permalink / raw)
  To: boris.brezillon; +Cc: mturquette, nicolas.ferre, sboyd, linux-clk, linux-kernel

Do not leak memory if clk_register fails.

Signed-off-by: David Dueck <davidcdueck@googlemail.com>
---
 drivers/clk/at91/clk-h32mx.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/clk/at91/clk-h32mx.c b/drivers/clk/at91/clk-h32mx.c
index 152dcb3..61566bc 100644
--- a/drivers/clk/at91/clk-h32mx.c
+++ b/drivers/clk/at91/clk-h32mx.c
@@ -116,8 +116,10 @@ void __init of_sama5d4_clk_h32mx_setup(struct device_node *np,
 	h32mxclk->pmc = pmc;
 
 	clk = clk_register(NULL, &h32mxclk->hw);
-	if (!clk)
+	if (!clk) {
+		kfree(h32mxclk);
 		return;
+	}
 
 	of_clk_add_provider(np, of_clk_src_simple_get, clk);
 }
-- 
2.4.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 2/6] clk: at91: clk-main: fix memory leak
  2015-06-26 12:33 [PATCH 1/6] clk: at91: clk-h32mxclk: fix memory leak David Dueck
@ 2015-06-26 12:33 ` David Dueck
  2015-06-26 12:33 ` [PATCH 3/6] clk: at91: clk-master: fix error path David Dueck
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: David Dueck @ 2015-06-26 12:33 UTC (permalink / raw)
  To: boris.brezillon; +Cc: mturquette, nicolas.ferre, sboyd, linux-clk, linux-kernel

Do not leak memory if request_irq fails.

Signed-off-by: David Dueck <davidcdueck@googlemail.com>
---
 drivers/clk/at91/clk-main.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/clk/at91/clk-main.c b/drivers/clk/at91/clk-main.c
index 59fa3cc..696719e 100644
--- a/drivers/clk/at91/clk-main.c
+++ b/drivers/clk/at91/clk-main.c
@@ -171,8 +171,10 @@ at91_clk_register_main_osc(struct at91_pmc *pmc,
 	irq_set_status_flags(osc->irq, IRQ_NOAUTOEN);
 	ret = request_irq(osc->irq, clk_main_osc_irq_handler,
 			  IRQF_TRIGGER_HIGH, name, osc);
-	if (ret)
+	if (ret) {
+		kfree(osc);
 		return ERR_PTR(ret);
+	}
 
 	if (bypass)
 		pmc_write(pmc, AT91_CKGR_MOR,
-- 
2.4.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 3/6] clk: at91: clk-master: fix error path
  2015-06-26 12:33 [PATCH 1/6] clk: at91: clk-h32mxclk: fix memory leak David Dueck
  2015-06-26 12:33 ` [PATCH 2/6] clk: at91: clk-main: " David Dueck
@ 2015-06-26 12:33 ` David Dueck
  2015-06-26 12:33 ` [PATCH 4/6] clk: at91: clk-pll: " David Dueck
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: David Dueck @ 2015-06-26 12:33 UTC (permalink / raw)
  To: boris.brezillon; +Cc: mturquette, nicolas.ferre, sboyd, linux-clk, linux-kernel

Do not leak memory if request_irq fails and free the irq if
clk_register fails.

Signed-off-by: David Dueck <davidcdueck@googlemail.com>
---
 drivers/clk/at91/clk-master.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/at91/clk-master.c b/drivers/clk/at91/clk-master.c
index c1af80b..d7d6c59 100644
--- a/drivers/clk/at91/clk-master.c
+++ b/drivers/clk/at91/clk-master.c
@@ -165,12 +165,16 @@ at91_clk_register_master(struct at91_pmc *pmc, unsigned int irq,
 	irq_set_status_flags(master->irq, IRQ_NOAUTOEN);
 	ret = request_irq(master->irq, clk_master_irq_handler,
 			  IRQF_TRIGGER_HIGH, "clk-master", master);
-	if (ret)
+	if (ret) {
+		kfree(master);
 		return ERR_PTR(ret);
+	}
 
 	clk = clk_register(NULL, &master->hw);
-	if (IS_ERR(clk))
+	if (IS_ERR(clk)) {
+		free_irq(master->irq, master);
 		kfree(master);
+	}
 
 	return clk;
 }
-- 
2.4.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 4/6] clk: at91: clk-pll: fix error path
  2015-06-26 12:33 [PATCH 1/6] clk: at91: clk-h32mxclk: fix memory leak David Dueck
  2015-06-26 12:33 ` [PATCH 2/6] clk: at91: clk-main: " David Dueck
  2015-06-26 12:33 ` [PATCH 3/6] clk: at91: clk-master: fix error path David Dueck
@ 2015-06-26 12:33 ` David Dueck
  2015-06-26 12:33 ` [PATCH 5/6] clk: at91: clk-system: " David Dueck
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 7+ messages in thread
From: David Dueck @ 2015-06-26 12:33 UTC (permalink / raw)
  To: boris.brezillon; +Cc: mturquette, nicolas.ferre, sboyd, linux-clk, linux-kernel

Do not leak memory if request_irq fails and free the irq if
clk_register fails.

Signed-off-by: David Dueck <davidcdueck@googlemail.com>
---
 drivers/clk/at91/clk-pll.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/at91/clk-pll.c b/drivers/clk/at91/clk-pll.c
index cbbe403..18b60f4 100644
--- a/drivers/clk/at91/clk-pll.c
+++ b/drivers/clk/at91/clk-pll.c
@@ -346,12 +346,16 @@ at91_clk_register_pll(struct at91_pmc *pmc, unsigned int irq, const char *name,
 	irq_set_status_flags(pll->irq, IRQ_NOAUTOEN);
 	ret = request_irq(pll->irq, clk_pll_irq_handler, IRQF_TRIGGER_HIGH,
 			  id ? "clk-pllb" : "clk-plla", pll);
-	if (ret)
+	if (ret) {
+		kfree(pll);
 		return ERR_PTR(ret);
+	}
 
 	clk = clk_register(NULL, &pll->hw);
-	if (IS_ERR(clk))
+	if (IS_ERR(clk)) {
+		free_irq(pll->irq, pll);
 		kfree(pll);
+	}
 
 	return clk;
 }
-- 
2.4.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 5/6] clk: at91: clk-system: fix error path
  2015-06-26 12:33 [PATCH 1/6] clk: at91: clk-h32mxclk: fix memory leak David Dueck
                   ` (2 preceding siblings ...)
  2015-06-26 12:33 ` [PATCH 4/6] clk: at91: clk-pll: " David Dueck
@ 2015-06-26 12:33 ` David Dueck
  2015-06-26 12:33 ` [PATCH 6/6] clk: at91: clk-utmi: " David Dueck
  2015-06-26 13:12 ` [PATCH 1/6] clk: at91: clk-h32mxclk: fix memory leak Boris Brezillon
  5 siblings, 0 replies; 7+ messages in thread
From: David Dueck @ 2015-06-26 12:33 UTC (permalink / raw)
  To: boris.brezillon; +Cc: mturquette, nicolas.ferre, sboyd, linux-clk, linux-kernel

Do not leak memory if request_irq fails and free the irq if
clk_register fails.

Signed-off-by: David Dueck <davidcdueck@googlemail.com>
---
 drivers/clk/at91/clk-system.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/at91/clk-system.c b/drivers/clk/at91/clk-system.c
index a76d03f..58008b3 100644
--- a/drivers/clk/at91/clk-system.c
+++ b/drivers/clk/at91/clk-system.c
@@ -130,13 +130,17 @@ at91_clk_register_system(struct at91_pmc *pmc, const char *name,
 		irq_set_status_flags(sys->irq, IRQ_NOAUTOEN);
 		ret = request_irq(sys->irq, clk_system_irq_handler,
 				IRQF_TRIGGER_HIGH, name, sys);
-		if (ret)
+		if (ret) {
+			kfree(sys);
 			return ERR_PTR(ret);
+		}
 	}
 
 	clk = clk_register(NULL, &sys->hw);
-	if (IS_ERR(clk))
+	if (IS_ERR(clk)) {
+		free_irq(sys->irq, sys);
 		kfree(sys);
+	}
 
 	return clk;
 }
-- 
2.4.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* [PATCH 6/6] clk: at91: clk-utmi: fix error path
  2015-06-26 12:33 [PATCH 1/6] clk: at91: clk-h32mxclk: fix memory leak David Dueck
                   ` (3 preceding siblings ...)
  2015-06-26 12:33 ` [PATCH 5/6] clk: at91: clk-system: " David Dueck
@ 2015-06-26 12:33 ` David Dueck
  2015-06-26 13:12 ` [PATCH 1/6] clk: at91: clk-h32mxclk: fix memory leak Boris Brezillon
  5 siblings, 0 replies; 7+ messages in thread
From: David Dueck @ 2015-06-26 12:33 UTC (permalink / raw)
  To: boris.brezillon; +Cc: mturquette, nicolas.ferre, sboyd, linux-clk, linux-kernel

Do not leak memory if request_irq fails and free the irq if
clk_register fails.

Signed-off-by: David Dueck <davidcdueck@googlemail.com>
---
 drivers/clk/at91/clk-utmi.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/at91/clk-utmi.c b/drivers/clk/at91/clk-utmi.c
index ae3263b..30dd697 100644
--- a/drivers/clk/at91/clk-utmi.c
+++ b/drivers/clk/at91/clk-utmi.c
@@ -118,12 +118,16 @@ at91_clk_register_utmi(struct at91_pmc *pmc, unsigned int irq,
 	irq_set_status_flags(utmi->irq, IRQ_NOAUTOEN);
 	ret = request_irq(utmi->irq, clk_utmi_irq_handler,
 			  IRQF_TRIGGER_HIGH, "clk-utmi", utmi);
-	if (ret)
+	if (ret) {
+		kfree(utmi);
 		return ERR_PTR(ret);
+	}
 
 	clk = clk_register(NULL, &utmi->hw);
-	if (IS_ERR(clk))
+	if (IS_ERR(clk)) {
+		free_irq(utmi->irq, utmi);
 		kfree(utmi);
+	}
 
 	return clk;
 }
-- 
2.4.4


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH 1/6] clk: at91: clk-h32mxclk: fix memory leak
  2015-06-26 12:33 [PATCH 1/6] clk: at91: clk-h32mxclk: fix memory leak David Dueck
                   ` (4 preceding siblings ...)
  2015-06-26 12:33 ` [PATCH 6/6] clk: at91: clk-utmi: " David Dueck
@ 2015-06-26 13:12 ` Boris Brezillon
  5 siblings, 0 replies; 7+ messages in thread
From: Boris Brezillon @ 2015-06-26 13:12 UTC (permalink / raw)
  To: David Dueck; +Cc: mturquette, nicolas.ferre, sboyd, linux-clk, linux-kernel

Hi David,

On Fri, 26 Jun 2015 14:33:27 +0200
David Dueck <davidcdueck@googlemail.com> wrote:

> Do not leak memory if clk_register fails.


Thanks for those fixes. Could you squash them in one single patch.
Once done you can add my

Acked-by: Boris Brezillon <boris.brezillon@free-electrons.com>

Best Regards,

Boris

> 
> Signed-off-by: David Dueck <davidcdueck@googlemail.com>
> ---
>  drivers/clk/at91/clk-h32mx.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/clk/at91/clk-h32mx.c b/drivers/clk/at91/clk-h32mx.c
> index 152dcb3..61566bc 100644
> --- a/drivers/clk/at91/clk-h32mx.c
> +++ b/drivers/clk/at91/clk-h32mx.c
> @@ -116,8 +116,10 @@ void __init of_sama5d4_clk_h32mx_setup(struct device_node *np,
>  	h32mxclk->pmc = pmc;
>  
>  	clk = clk_register(NULL, &h32mxclk->hw);
> -	if (!clk)
> +	if (!clk) {
> +		kfree(h32mxclk);
>  		return;
> +	}
>  
>  	of_clk_add_provider(np, of_clk_src_simple_get, clk);
>  }



-- 
Boris Brezillon, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2015-06-26 13:12 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-06-26 12:33 [PATCH 1/6] clk: at91: clk-h32mxclk: fix memory leak David Dueck
2015-06-26 12:33 ` [PATCH 2/6] clk: at91: clk-main: " David Dueck
2015-06-26 12:33 ` [PATCH 3/6] clk: at91: clk-master: fix error path David Dueck
2015-06-26 12:33 ` [PATCH 4/6] clk: at91: clk-pll: " David Dueck
2015-06-26 12:33 ` [PATCH 5/6] clk: at91: clk-system: " David Dueck
2015-06-26 12:33 ` [PATCH 6/6] clk: at91: clk-utmi: " David Dueck
2015-06-26 13:12 ` [PATCH 1/6] clk: at91: clk-h32mxclk: fix memory leak Boris Brezillon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox