[rt2x00-users] Ralink rt73 USB Wireless adapter crashes kernel 2.6.37

Johannes Stezenbach js at sig21.net
Fri Feb 4 03:54:23 EST 2011


On Thu, Feb 03, 2011 at 11:37:19AM +0000, Eric Fernandez wrote:
> 
> After the kernel has been upgraded to kernel 2.6.37, I noticed random
> crashes which I did not have with kernel 2.6.36. The system freezes
> entirely, and sound loops for a few seconds. Only a hard reboot works.

I think a likely explanation is
http://article.gmane.org/gmane.linux.kernel.wireless.general/62926

Basically rt2x00usb_work_txdone() does
	entry = rt2x00queue_get_entry(queue, Q_INDEX_DONE);
and rt2x00lib_txdone() eventually does
	entry->skb = NULL;
	rt2x00queue_index_inc(entry->queue, Q_INDEX_DONE);

So there is a window of opportunity where a second thread
(e.g. the watchdog) might work on the same entry and
suddenly has it's entry->skb disappear.

Maybe rt2x00lib_txdone() should do something to the effect of

	if (!test_and_set_bit(ENTRY_BUSY, &entry->flags))
		return;

?

> On restart, I do not see any message in the kernel log whatsoever,
> which makes the problem difficult to diagnose. Often, I need to unplug
> my wireless adapter to make it work again (gkrellm shos that it is
> trying to send packets to the router, but never downloads anything).

This seems to be another issue?


Johannes



More information about the users mailing list