ath9k_htc: Fix beaconing in IBSS mode
authorSujith <Sujith.Manoharan@atheros.com>
Thu, 6 May 2010 09:15:47 +0000 (14:45 +0530)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 7 May 2010 18:55:52 +0000 (14:55 -0400)
commit9c6dda4e2dfea970a7105e3805f0195bc3079f2f
tree3b255fefdca205e5f38032236faeb1d7e433a2a8
parent0aaffa9b9699894aab3266195a529baf9f96ac29
ath9k_htc: Fix beaconing in IBSS mode

The current way of managing beaconing in ad-hoc
mode has a subtle race - the beacon obtained from mac80211
is freed in the SWBA handler rather than the TX
completion routine. But transmission of beacons goes
through the normal SKB queue maintained in hif_usb,
leading to a situation where __skb_dequeue() in the TX
completion handler goes kaput.

Fix this by simply getting a beacon from mac80211 for
every SWBA and free it in its completion routine.

Signed-off-by: Sujith <Sujith.Manoharan@atheros.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath/ath9k/htc.h
drivers/net/wireless/ath/ath9k/htc_drv_beacon.c
drivers/net/wireless/ath/ath9k/htc_drv_init.c
drivers/net/wireless/ath/ath9k/htc_drv_main.c