diff options
author | Andrew Morton <akpm@osdl.org> | 2006-08-15 02:11:09 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2006-08-31 21:04:30 -0400 |
commit | eff674a514bd3f59e0cae9b843e0665b576a5ed8 (patch) | |
tree | 624efc633bf91bcb42e55b86f935996812e72eed /drivers/usb | |
parent | c9c770ed1fe2698c9a3b18e5fc12d1262e099c0c (diff) |
USB: rtl8150_disconnect() needs tasklet_kill()
We need to wait until any currently-running handler has completed. Fixes an
unplug-time oops reported by "Miles Lane" <miles.lane@gmail.com>.
Cc: "Petko Manolov" <petkan@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/net/rtl8150.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/usb/net/rtl8150.c b/drivers/usb/net/rtl8150.c index bd09232ce13c..a72685b96061 100644 --- a/drivers/usb/net/rtl8150.c +++ b/drivers/usb/net/rtl8150.c | |||
@@ -972,6 +972,7 @@ static void rtl8150_disconnect(struct usb_interface *intf) | |||
972 | if (dev) { | 972 | if (dev) { |
973 | set_bit(RTL8150_UNPLUG, &dev->flags); | 973 | set_bit(RTL8150_UNPLUG, &dev->flags); |
974 | tasklet_disable(&dev->tl); | 974 | tasklet_disable(&dev->tl); |
975 | tasklet_kill(&dev->tl); | ||
975 | unregister_netdev(dev->netdev); | 976 | unregister_netdev(dev->netdev); |
976 | unlink_all_urbs(dev); | 977 | unlink_all_urbs(dev); |
977 | free_all_urbs(dev); | 978 | free_all_urbs(dev); |