lkml.org 
[lkml]   [2011]   [Apr]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Subject[PATCH 1/3] usb: Fix qcserial memory leak on rmmod
    From
    Date
    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>
    ---
    Repost of qcserial patches posted last week, hopefully addresses review
    comments and email-patch-format issues

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

    diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
    index 8858201..6e3b933 100644
    --- a/drivers/usb/serial/qcserial.c
    +++ b/drivers/usb/serial/qcserial.c
    @@ -205,6 +205,18 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
    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,
    --
    1.7.1




    \
     
     \ /
      Last update: 2011-04-04 18:59    [W:0.021 / U:120.112 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site