aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/winbond
diff options
context:
space:
mode:
authorPekka Enberg <penberg@cs.helsinki.fi>2008-10-27 23:29:31 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2009-01-06 13:51:44 -0800
commit4af12e55a5f5e8d0d6d9390a592daa789a181e36 (patch)
tree3d8a2e548f98c37e089ea73f79034195f05bbdd7 /drivers/staging/winbond
parentc8b2b70b4334acbbc4daa445aa21b1fe6d337ac3 (diff)
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 <penberg@cs.helsinki.fi> Acked-by: Pavel Machek <pavel@suse.cz> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/staging/winbond')
-rw-r--r--drivers/staging/winbond/linux/wbusb.c7
1 files changed, 4 insertions, 3 deletions
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 = {