]> git.karo-electronics.de Git - karo-tx-linux.git/commit
ipw2200: fix scanning while associated
authorHelmut Schaa <helmut.schaa@googlemail.com>
Wed, 10 Dec 2008 12:17:26 +0000 (13:17 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 12 Feb 2009 17:50:36 +0000 (09:50 -0800)
commita2926858cfb4fd673618988f37a9dc26c5182377
tree3ca63e45e353d21f062f3d230c0735524217d1be
parent936574fd1687ea60a88a5070059e40c7dec7f414
ipw2200: fix scanning while associated

commit 14a4dfe2ff8c353f59ae8324059ded1cfe22c7d9 upstream.

This patch fixes sporadic firmware restarts when scanning while associated.

The firmware will quietly cancel a scan (while associated) if the dwell time
for a channel to be scanned is larger than the time it may stay away from the
operating channel (because of DTIM catching). Unfortunately the driver is not
notified about the canceled scan and therefore the scan watchdog timeout will
be hit and the driver causes a firmware restart which results in
disassociation. This mainly happens on passive channels which use a dwell time
of 120 whereas a typical beacon interval is around 100.

The patch changes the dwell time for passive channels to be slightly smaller
than the actual beacon interval to work around the firmware issue. Furthermore
the number of allowed beacon misses is increased from one to three as otherwise
most scans (while associated) won't complete successfully.

However scanning while associated will still fail in corner cases such as a
beacon intervals below 30.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/net/wireless/ipw2200.c
drivers/net/wireless/ipw2200.h