On Thu, Mar 17, 2016 at 03:56:43PM +0100, Stanislaw Gruszka wrote: > On Thu, Mar 17, 2016 at 12:55:59PM +0100, Vishal Thanki wrote: > > @@ -840,6 +857,8 @@ void rt2x00usb_disconnect(struct usb_interface *usb_intf) > > struct ieee80211_hw *hw = usb_get_intfdata(usb_intf); > > struct rt2x00_dev *rt2x00dev = hw->priv; > > > > + usb_kill_anchored_urbs(rt2x00dev->anchor); > > Driver can still submit urb's after that. This should be placed > after we disable radio and flush queues and race conditions with > hrtimer rt2800usb_tx_sta_fifo_timeout() should be handled. > I think rt2x00usb_uninitialize() is a good place which gets called from rt2x00lib_remove_dev() and is called after the radio is disabled, timer is stopped, workqueue is destroyed and tasklets are killed. Please let me know if there is a better suggestion. Vishal > Stanislaw -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html