Search Linux Wireless

Re: Kernel BUG when using ad-hoc mode in rt2x00

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thursday 09 August 2007, Adam Baker wrote:
> I've been seeing crashes when attempting to run an RT73 based device in ad-hoc 
> mode (I'm using the rt2x00 git tree). I recently managed to capture the 
> console output when it crashes and it all seems to point more to mac80211 
> than the rt2x00 driver so I thought I'd ask here.
> 
> a) If anyone can see anything obvious wrong in the trace
> b) If anyone has recently tested ad-hoc mode with another driver and can 
> confirm it works.
> 
> The sequence of events that leads to the crash is
> iwconfig wlan1 mode ad-hoc
> ifconfig wlan1 192.168.0.230
> iwconfig wlan1 channel 11
> iwconfig wlan1 essid test
> 
> then attempt a scan from another device. 
> 
> My guess is that the lockdep warning is caused by trying to lock something in 
> which the actual lock object has become corrupted hence it shortly afterwards 
> deadlocks.

Well not a lot of responses so far. ;)

Adam, could you try below patch to see if that helps?
rt73usb_reset_tsf should be allowed to sleep, but perhaps this is not
really the case after all. :S
If the below patch does not work, then the bug really is inside mac80211
since all other callbacks are either not linked to adhoc or are not being scheduled
by rt2x00.

Ivo

---

diff --git a/drivers/net/wireless/rt73usb.c b/drivers/net/wireless/rt73usb.c
index 98d3acc..589d16f 100644
--- a/drivers/net/wireless/rt73usb.c
+++ b/drivers/net/wireless/rt73usb.c
@@ -1831,7 +1831,6 @@ static u64 rt73usb_get_tsf(struct ieee80211_hw *hw)
 
 	return tsf;
 }
-#endif
 
 static void rt73usb_reset_tsf(struct ieee80211_hw *hw)
 {
@@ -1840,6 +1839,7 @@ static void rt73usb_reset_tsf(struct ieee80211_hw *hw)
 	rt73usb_register_write(rt2x00dev, TXRX_CSR12, 0);
 	rt73usb_register_write(rt2x00dev, TXRX_CSR13, 0);
 }
+#endif
 
 static const struct ieee80211_ops rt73usb_mac80211_ops = {
 	.tx			= rt2x00mac_tx,
@@ -1858,8 +1858,8 @@ static const struct ieee80211_ops rt73usb_mac80211_ops = {
  * See comment at the rt73usb_get_tsf function.
  */
 	.get_tsf		= rt73usb_get_tsf,
-#endif
 	.reset_tsf		= rt73usb_reset_tsf,
+#endif
 	.beacon_update		= rt2x00usb_beacon_update,
 };
 



-
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

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux