staging: ath6kl: cfg80211_roam issue; driver wedge
authorNaveen Singh <nsingh@atheros.com>
Fri, 29 Apr 2011 17:02:20 +0000 (20:02 +0300)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 3 May 2011 19:09:42 +0000 (12:09 -0700)
commit60c87f1453e8d53e14941c2d99861a21282942a5
treec9b9a4e304d7089df1dfd8ffee65cece974e9075
parentabc15bdd87171f9150e58e3f5237cd9372b185d7
staging: ath6kl: cfg80211_roam issue; driver wedge

If a heavy traffic is undergoing and a link is lost (bcn miss),
wlan driver does a reconnection on its own and after connection
is re-established, reports it as ROAM_EVENT to cfg. Now this event
is handled as work queue. It could very well happen that by the
time this event gets handled, cfg would have aged out the bss and
we get the following WARN_ON in __cfg80211_roamed function in file
net/wireless/sme.c.

        /* internal error -- how did we get to CONNECTED w/o BSS? */
        if (WARN_ON(!wdev->current_bss)) {
                return;
        }
To resolve the issue we report the BSS whenever we send a connect or
roam event to the cfg.

kvalo: fix style issues

Signed-off-by: Naveen Singh <nsingh@atheros.com>
Signed-off-by: Kalle Valo <kalle.valo@atheros.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/ath6kl/os/linux/cfg80211.c