summaryrefslogtreecommitdiffstats
path: root/drivers/staging/winbond/wbusb.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-05-10 10:49:53 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-05-10 10:49:53 -0700
commita4d7749be5de4a7261bcbe3c7d96c748792ec455 (patch)
tree0a38d9a679b063fb17776ba109018a6d66bf97a1 /drivers/staging/winbond/wbusb.c
parent6580cd59f9d11b62ebef5b27662bdc1fdf34eb64 (diff)
parentca9fc928788a02a0fe975dc3334e6d7ec521b6af (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: Staging: comedi: David doesn't want to get comedi patches Staging: rtl8187se: Fix compilation warnings and procfs directory leak Staging: rt2870: new device id Staging: w35und: unregister device from the ieee80211 stack upon ->disconnect()
Diffstat (limited to 'drivers/staging/winbond/wbusb.c')
-rw-r--r--drivers/staging/winbond/wbusb.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/staging/winbond/wbusb.c b/drivers/staging/winbond/wbusb.c
index 9c3f9439f35..3b2d52819b4 100644
--- a/drivers/staging/winbond/wbusb.c
+++ b/drivers/staging/winbond/wbusb.c
@@ -386,7 +386,7 @@ static int wb35_probe(struct usb_interface *intf, const struct usb_device_id *id
if (err)
goto error_free_hw;
- usb_set_intfdata(intf, priv);
+ usb_set_intfdata(intf, dev);
return 0;
@@ -415,10 +415,15 @@ static void wb35_hw_halt(struct wbsoft_priv *adapter)
static void wb35_disconnect(struct usb_interface *intf)
{
- struct wbsoft_priv *priv = usb_get_intfdata(intf);
+ struct ieee80211_hw *hw = usb_get_intfdata(intf);
+ struct wbsoft_priv *priv = hw->priv;
wb35_hw_halt(priv);
+ ieee80211_stop_queues(hw);
+ ieee80211_unregister_hw(hw);
+ ieee80211_free_hw(hw);
+
usb_set_intfdata(intf, NULL);
usb_put_dev(interface_to_usbdev(intf));
}