lkml.org 
[lkml]   [2013]   [Apr]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[ 068/171 ] USB: serial: fix interface refcounting
    3.6.11.2 stable review patch.
    If anyone has any objections, please let me know.

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

    From: Johan Hovold <jhovold@gmail.com>

    [ Upstream commit d7971051e4df825e0bc11b995e87bfe86355b8e5 ]

    Make sure the interface is not released before our serial device.

    Note that drivers are still not allowed to access the interface in
    any way that may interfere with another driver that may have gotten
    bound to the same interface after disconnect returns.

    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <jhovold@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    ---
    drivers/usb/serial/usb-serial.c | 3 ++-
    1 file changed, 2 insertions(+), 1 deletion(-)

    diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
    index 667c39c..da1e728 100644
    --- a/drivers/usb/serial/usb-serial.c
    +++ b/drivers/usb/serial/usb-serial.c
    @@ -157,6 +157,7 @@ static void destroy_serial(struct kref *kref)
    }
    }

    + usb_put_intf(serial->interface);
    usb_put_dev(serial->dev);
    kfree(serial);
    }
    @@ -614,7 +615,7 @@ static struct usb_serial *create_serial(struct usb_device *dev,
    }
    serial->dev = usb_get_dev(dev);
    serial->type = driver;
    - serial->interface = interface;
    + serial->interface = usb_get_intf(interface);
    kref_init(&serial->kref);
    mutex_init(&serial->disc_mutex);
    serial->minor = SERIAL_TTY_NO_MINOR;
    --
    1.7.10.4



    \
     
     \ /
      Last update: 2013-04-12 03:01    [W:4.122 / U:0.540 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site