diff mbox series

reset: Free struct reset_control_array in reset_control_array_put()

Message ID 9c8c5c337a9351a561a4bf18f2faa1e9a01b50e6.1572884515.git.jsarha@ti.com
State New
Headers show
Series reset: Free struct reset_control_array in reset_control_array_put() | expand

Commit Message

Jyri Sarha Nov. 4, 2019, 4:24 p.m. UTC
Fix memory leak in devm_reset_control_array_get(). Free also the
struct reset_control_array pointer in reset_control_array_put() not
only the reset-controls stored in it.

Reported-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Signed-off-by: Jyri Sarha <jsarha@ti.com>

---
 drivers/reset/core.c | 2 ++
 1 file changed, 2 insertions(+)

-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki

Comments

Philipp Zabel Nov. 4, 2019, 4:30 p.m. UTC | #1
Hi Jyri,

On Mon, 2019-11-04 at 18:24 +0200, Jyri Sarha wrote:
> Fix memory leak in devm_reset_control_array_get(). Free also the

> struct reset_control_array pointer in reset_control_array_put() not

> only the reset-controls stored in it.

> 

> Reported-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

> Signed-off-by: Jyri Sarha <jsarha@ti.com>

> ---

>  drivers/reset/core.c | 2 ++

>  1 file changed, 2 insertions(+)

> 

> diff --git a/drivers/reset/core.c b/drivers/reset/core.c

> index 213ff40dda11..85d9676ee969 100644

> --- a/drivers/reset/core.c

> +++ b/drivers/reset/core.c

> @@ -748,6 +748,8 @@ static void reset_control_array_put(struct reset_control_array *resets)

>  	for (i = 0; i < resets->num_rstcs; i++)

>  		__reset_control_put_internal(resets->rstc[i]);

>  	mutex_unlock(&reset_list_mutex);

> +

> +	kfree(resets);

>  }

>  

>  /**


Thank you, this just got fixed in 532f9cd6ee99 ("reset: Fix memory leak
in reset_control_array_put()").

regards
Philipp
Jyri Sarha Nov. 4, 2019, 7:03 p.m. UTC | #2
On 04/11/2019 18:30, Philipp Zabel wrote:
> Hi Jyri,

> 

> On Mon, 2019-11-04 at 18:24 +0200, Jyri Sarha wrote:

>> Fix memory leak in devm_reset_control_array_get(). Free also the

>> struct reset_control_array pointer in reset_control_array_put() not

>> only the reset-controls stored in it.

>>

>> Reported-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

>> Signed-off-by: Jyri Sarha <jsarha@ti.com>

>> ---

>>  drivers/reset/core.c | 2 ++

>>  1 file changed, 2 insertions(+)

>>

>> diff --git a/drivers/reset/core.c b/drivers/reset/core.c

>> index 213ff40dda11..85d9676ee969 100644

>> --- a/drivers/reset/core.c

>> +++ b/drivers/reset/core.c

>> @@ -748,6 +748,8 @@ static void reset_control_array_put(struct reset_control_array *resets)

>>  	for (i = 0; i < resets->num_rstcs; i++)

>>  		__reset_control_put_internal(resets->rstc[i]);

>>  	mutex_unlock(&reset_list_mutex);

>> +

>> +	kfree(resets);

>>  }

>>  

>>  /**

> 

> Thank you, this just got fixed in 532f9cd6ee99 ("reset: Fix memory leak

> in reset_control_array_put()").

> 


Ok, sorry. I just checked the mainline, not the mailing lists etc.

Best regards,
Jyri


-- 
Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki.
Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
Philipp Zabel Nov. 6, 2019, 9:06 a.m. UTC | #3
On Mon, 2019-11-04 at 21:03 +0200, Jyri Sarha wrote:
> On 04/11/2019 18:30, Philipp Zabel wrote:

> > Hi Jyri,

> > 

> > On Mon, 2019-11-04 at 18:24 +0200, Jyri Sarha wrote:

> > > Fix memory leak in devm_reset_control_array_get(). Free also the

> > > struct reset_control_array pointer in reset_control_array_put() not

> > > only the reset-controls stored in it.

> > > 

> > > Reported-by: Tomi Valkeinen <tomi.valkeinen@ti.com>

> > > Signed-off-by: Jyri Sarha <jsarha@ti.com>

> > > ---

> > >  drivers/reset/core.c | 2 ++

> > >  1 file changed, 2 insertions(+)

> > > 

> > > diff --git a/drivers/reset/core.c b/drivers/reset/core.c

> > > index 213ff40dda11..85d9676ee969 100644

> > > --- a/drivers/reset/core.c

> > > +++ b/drivers/reset/core.c

> > > @@ -748,6 +748,8 @@ static void reset_control_array_put(struct reset_control_array *resets)

> > >  	for (i = 0; i < resets->num_rstcs; i++)

> > >  		__reset_control_put_internal(resets->rstc[i]);

> > >  	mutex_unlock(&reset_list_mutex);

> > > +

> > > +	kfree(resets);

> > >  }

> > >  

> > >  /**

> > 

> > Thank you, this just got fixed in 532f9cd6ee99 ("reset: Fix memory leak

> > in reset_control_array_put()").

> > 

> 

> Ok, sorry. I just checked the mainline, not the mailing lists etc.


No worries, that's perfectly fine. Just letting you know why this patch
isn't picked up.

regards
Philipp
diff mbox series

Patch

diff --git a/drivers/reset/core.c b/drivers/reset/core.c
index 213ff40dda11..85d9676ee969 100644
--- a/drivers/reset/core.c
+++ b/drivers/reset/core.c
@@ -748,6 +748,8 @@  static void reset_control_array_put(struct reset_control_array *resets)
 	for (i = 0; i < resets->num_rstcs; i++)
 		__reset_control_put_internal(resets->rstc[i]);
 	mutex_unlock(&reset_list_mutex);
+
+	kfree(resets);
 }
 
 /**