Re: 2.6.31-rc2: Possible regression in rt61pci driver

From: Chris Clayton
Date: Tue Jul 21 2009 - 07:39:32 EST


2009/7/14 Chris Clayton <chris2553@xxxxxxxxxxxxxx>:
<snip>

> I've updated to 2.6.31-rc3 this morning and done some more testing.
> I'm now convinced that the rt61pci driver is somehow involved in
> locking up the laptop. With the (Belkin) rt61 card inserted, the
> machine will lock up even if I am doing nothing (no web browsing,
> email or anything else at all) except running this script in a console
> window:
>
> i=0
> while true; do
>        let i++
>        echo -n "$i "
>        sleep 1
> done
>
> In the tests I have done so far, the counter has never gone beyond 240
> before the machine locked. With the (no-name) ath5k card inserted I
> can use the laptop for normal web browsing, email, etc with no
> problems - the counter in the script above gets to over 2000.
>

The freeze still happens with 2.6.31-rc3-git5, but I've been doing
some more fact-finding.

Running the script shown above and with the rt61-based card inserted,
I can freeze the laptop even if I am doing nothing else on the laptop.
When the freeze occurs, the laptop is effectively dead, no response to
mouse movement or keyboard input and no response to pings from
another machine on my network. However, if I eject the card, the
laptop comes to life again. The key presses from when the laptop was
frozen appear on screen and pings from another machine are responded
to. The script continues to run and display the counter. I then
reinsert the card and everything appears OK until the laptop freezes
again a minute or two later. During a test run this morning the
machine froze at (from the output of the script) 80, 235, 369, 538 and
672. Each time, ejecting the card brought the machine back to life.

Trying the same test with the ath5k-based card inserted resulted in
the script getting to 2300 without the laptop freezing, at which point
I stopped the script.

I started trying to isolate the change that causes the problem by
reverting changes to the files in drivers/net/wireless/rt2x00. The
change "rt2x00: Remove last usage of beacon_int from
ieee80211_config" reverted cleanly and the kernel built OK, but I
still got the freeze. "rt2x00: Remove usage of
IEEE80211_CONF_CHANGE_BEACON_INTERVAL" also reverted cleanly but the
kernel doesn't build because of dependencies on changes to mac80211.
I'm afraid I am out of my depth now, so I will have to abandon that
line of enquiry.

I hope this new information helps track the problem down. I've
attached the output from dmesg that shows the messages emitted when I
eject the card, plus my config

Thanks,

Chris
--
No, Sir; there is nothing which has yet been contrived by man, by which
so much happiness is produced as by a good tavern or inn - Doctor Samuel
Johnson

Attachment: rt61freeze.log
Description: Binary data

Attachment: .config
Description: Binary data