if_ath driver bug, causes hang with certain access points
bobf at mrp3.com
Mon Apr 16 21:09:00 UTC 2007
[I attempted to submit this using the problem report form but it was not responding
after I submitted it]
FreeBSD version (uname -a)
FreeBSD BSDLaptop 6.2-STABLE FreeBSD 6.2-STABLE #0: Fri Mar 9 20:19:08 PST 2007
bobf at BSDLaptop:/usr/obj/usr/src/sys/GENERIC i386
When running access points that use broadcom chipsets (such as the Linksys 300N or
WRT54GS), the if_ath driver will occasionally hang when using an Airlink 101 cardbus
device (Atheros 5212). The problem typically occurs when a MIMO capable AP (Linksys
300N) or speedboost capable AP (WRT54GS) is being used at close range and the
Atheros-based card is NOT associated (only scanning or packet-sniffing via WireShark).
I have speculated that it may be due to speedboost or the MIMO packets having a negative
effect on the if_ath driver, since this problem does not occur with any other access
points to my knowledge. Anecdotally it may also happen if the access point is
malfunctioning, sending bad or partial packets, or when there is a LOT of interference
(aircraft radar, other access points), but I have only observed this happening with the
speedboost-capable or MIMO access points running at close range.
Steps to reproduce problem:
a) activate a Linksys 300N (configured for MIMO g operation) or WRT54GS access point
(with speedboost enabled), but do not associate with the AP.
b) enable the 'ath' device via ifconfig, choose a non-existent ssid (so it does
not associate) and do a scan, similar to the following command
ifconfig ath0 up ssid x scan
repeat this several times, as needed
FYI - the probability of 'malformed packets' due to 'work in progress' code is very
high, so that could be part of the problem. However, even with a malformed packet, the
if_ath driver shouldn't hang.
More information about the freebsd-bugs