[Bug 31857] Re: r818x driver freezes randomly
Dan Lenski
lenski at umd.edu
Wed Jan 17 05:16:39 UTC 2007
Okay, I have tracked down a bit more info on this bug: it is evidently a
soft lockup resulting from a spinlock. I can reproduce it by trying to
upload a 1gb file to a remote server without limiting the upload rate...
my system will freeze within a few seconds or minutes of starting this.
The system freezes, and then a few seconds later it spews out debug info
onto the console.
uname -a: Linux localhost 2.6.19-7-generic #2 SMP Mon Dec 4 12:39:22 UTC
2006 x86_64 GNU/Linux
Unfortunately I haven't got a serial console set up, but here are the
top few levels of the call trace, which are always the same:
Call trace:
:ieee80211_rtl:rtl_ieee80211_stop_queue+0x20/0x60
:ieee80211_rtl:rtl_ieee80211_softmac_xmit+0x74/0xc0
:ieee80211_rtl:rtl_ieee80211_xmit+0x886/0x960
__qdisc_run+0x11c/0x200
dev_queue_xmit+0x125/0x270
ip_output+0x217/0x270
ip_queue_xmit+0x446/0x4a0
tcp_transmit_skb+0x666/0x700
tcp_push_one+0xfc/0x150
tcp_sendmsg+0x88f/0xb10
Code: 83 3f 00 7e fa eb f2 c3 0f 1f 80
00 00 00 00 0f 1f 80 00 00
Here is the code of the offending function (in the file /usr/src/linux-
source-2.6.19/ubuntu/wireless/rtl_ieee80211/rtl_ieee80211_softmac.c from
the Ubuntu package linux-source-2.6.19):
void rtl_ieee80211_stop_queue(struct rtl_ieee80211_device *ieee)
{
unsigned long flags;
spin_lock_irqsave(&ieee->lock,flags);
if (! netif_queue_stopped(ieee->dev)){
netif_stop_queue(ieee->dev);
ieee->softmac_stats.swtxstop++;
}
ieee->queue_stop = 1;
spin_unlock_irqrestore(&ieee->lock,flags);
}
Okay, will this help get the ball rolling for finding a fix to this
problem? Any hints on how to fix it? I haven't done much kernel
hacking...
--
r818x driver freezes randomly
https://launchpad.net/bugs/31857
More information about the kernel-bugs
mailing list