On Sunday 27 August 2006 07:14, Michael Wu wrote: > On Friday 11 August 2006 01:34, Johannes Berg wrote: > > This is running wireless-dev from yesterday. All I did was plug in a > > rt2500usb device into a usb port on a freshly booted system. I have a > > feeling that this is could be one of the problems reported earlier with > > the d80211 stack, but I haven't mastered the art of picking through > > these traces yet... What's swapper doing in there? > > > Ok, so it looks like dev_activate (called by dev_open) grabs queue_lock, then > calls another function (dev_watchdog_up) which grabs xmit_lock. However, at > that point, the device is up enough that someone who wants to try > transmitting, can transmit (I think). If they're unlucky enough to transmit > after the queue_lock is grabbed but before xmit_lock, we get a deadlock. > > This seems avoidable either by setting carrier_off before calling dev_open, > and turning it back on at a safe point (on association?), or simply refusing > to transmit until it is reasonable to do so. (a similar thing was done in > adm8211: call netif_stop_queue and return 1 if we're not ready to tx yet in > order to hold skbs until association, where netif_wake_queue would be > called.) But in the end this is something that should be fixed in the stack right? rt2x00 indeed seems to miss the ieee80211_netif_oper() commands, I'll add them immediately.
Thanks. Ivo - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html