From: Pekka Enberg Date: Mon, 27 Oct 2008 21:29:31 +0000 (+0200) Subject: Staging: w35und: usb_put_dev() is missing from wb35_disconnect() X-Git-Tag: v2.6.29-rc1~228^2~217 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=4af12e55a5f5e8d0d6d9390a592daa789a181e36;p=linux-2.6-omap-h63xx.git Staging: w35und: usb_put_dev() is missing from wb35_disconnect() The wb35_probe() function does usb_get_dev() so add a missing usb_put_dev() to the wb35_disconnect() function. Also fix error handling paths in wb35_probe() to call usb_put_dev() as well. Signed-off-by: Pekka Enberg Acked-by: Pavel Machek Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/winbond/linux/wbusb.c b/drivers/staging/winbond/linux/wbusb.c index eb115034498..d9c3a16c415 100644 --- a/drivers/staging/winbond/linux/wbusb.c +++ b/drivers/staging/winbond/linux/wbusb.c @@ -275,6 +275,7 @@ error_free_hw: error_free_adapter: kfree(adapter); error: + usb_put_dev(udev); return err; } @@ -308,12 +309,12 @@ void packet_came(char *pRxBufferAddress, int PacketSize) static void wb35_disconnect(struct usb_interface *intf) { - struct wb35_adapter * adapter = usb_get_intfdata(intf); - usb_set_intfdata(intf, NULL); + struct wb35_adapter *adapter = usb_get_intfdata(intf); - // Card remove WbWlanHalt(adapter); + usb_set_intfdata(intf, NULL); + usb_put_dev(interface_to_usbdev(intf)); } static struct usb_driver wb35_driver = {