aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2006-08-15 02:11:09 -0400
committerGreg Kroah-Hartman <gregkh@suse.de>2006-08-31 21:04:30 -0400
commiteff674a514bd3f59e0cae9b843e0665b576a5ed8 (patch)
tree624efc633bf91bcb42e55b86f935996812e72eed
parentc9c770ed1fe2698c9a3b18e5fc12d1262e099c0c (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>
-rw-r--r--drivers/usb/net/rtl8150.c1
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);