lkml.org 
[lkml]   [2011]   [Apr]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[59/70] usb: Fix qcserial memory leak on rmmod
    2.6.38-stable review patch.  If anyone has any objections, please let us know.

    ------------------

    From: Steven Hardy <shardy@redhat.com>

    commit 10c9ab15d6aee153968d150c05b3ee3df89673de upstream.

    qcprobe function allocates serial->private but this is never freed, this
    patch adds a new function qc_release() which frees serial->private, after
    calling usb_wwan_release

    Signed-off-by: Steven Hardy <shardy@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

    ---
    drivers/usb/serial/qcserial.c | 14 +++++++++++++-
    1 file changed, 13 insertions(+), 1 deletion(-)

    --- a/drivers/usb/serial/qcserial.c
    +++ b/drivers/usb/serial/qcserial.c
    @@ -205,6 +205,18 @@ static int qcprobe(struct usb_serial *se
    return retval;
    }

    +static void qc_release(struct usb_serial *serial)
    +{
    + struct usb_wwan_intf_private *priv = usb_get_serial_data(serial);
    +
    + dbg("%s", __func__);
    +
    + /* Call usb_wwan release & free the private data allocated in qcprobe */
    + usb_wwan_release(serial);
    + usb_set_serial_data(serial, NULL);
    + kfree(priv);
    +}
    +
    static struct usb_serial_driver qcdevice = {
    .driver = {
    .owner = THIS_MODULE,
    @@ -222,7 +234,7 @@ static struct usb_serial_driver qcdevice
    .chars_in_buffer = usb_wwan_chars_in_buffer,
    .attach = usb_wwan_startup,
    .disconnect = usb_wwan_disconnect,
    - .release = usb_wwan_release,
    + .release = qc_release,
    #ifdef CONFIG_PM
    .suspend = usb_wwan_suspend,
    .resume = usb_wwan_resume,



    \
     
     \ /
      Last update: 2011-04-19 22:23    [W:0.045 / U:28.696 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site