I found a memory leak in sierra_release() (well sierra_probe() I guess)
that looses 8 bytes each time the driver releases a device.
Here is the patch to fix it.
diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
index 01d882c..76ef95b 100644
--- a/drivers/usb/serial/sierra.c
+++ b/drivers/usb/serial/sierra.c
@@ -959,6 +959,7 @@ static void sierra_release(struct usb_serial *serial)
continue;
kfree(portdata);
}
+ kfree(serial->private);
}
#ifdef CONFIG_PM
--
Len Sorensen
"Lennart Sorensen" <[email protected]> writes:
> I found a memory leak in sierra_release() (well sierra_probe() I guess)
> that looses 8 bytes each time the driver releases a device.
>
> Here is the patch to fix it.
>
> diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
> index 01d882c..76ef95b 100644
> --- a/drivers/usb/serial/sierra.c
> +++ b/drivers/usb/serial/sierra.c
> @@ -959,6 +959,7 @@ static void sierra_release(struct usb_serial *serial)
> continue;
> kfree(portdata);
> }
> + kfree(serial->private);
> }
>
> #ifdef CONFIG_PM
Looks sensible to me, but needs a signed-off-by and CC to linux-usb.
Bjørn
On Wed, Oct 24, 2012 at 01:00:21PM +0200, Bjørn Mork wrote:
> "Lennart Sorensen" <[email protected]> writes:
>
> > I found a memory leak in sierra_release() (well sierra_probe() I guess)
> > that looses 8 bytes each time the driver releases a device.
> >
> > Here is the patch to fix it.
> >
> > diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
> > index 01d882c..76ef95b 100644
> > --- a/drivers/usb/serial/sierra.c
> > +++ b/drivers/usb/serial/sierra.c
> > @@ -959,6 +959,7 @@ static void sierra_release(struct usb_serial *serial)
> > continue;
> > kfree(portdata);
> > }
> > + kfree(serial->private);
> > }
> >
> > #ifdef CONFIG_PM
>
> Looks sensible to me, but needs a signed-off-by and CC to linux-usb.
Oh yeah. I shouldn't send patches at the end of the day.
I will try again.
--
Len Sorensen