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>
This commit is contained in:
@ -144,7 +144,7 @@ static int ath9k_init_htc_services(struct ath9k_htc_priv *priv)
|
||||
goto err;
|
||||
|
||||
/* Beacon */
|
||||
ret = ath9k_htc_connect_svc(priv, WMI_BEACON_SVC, NULL,
|
||||
ret = ath9k_htc_connect_svc(priv, WMI_BEACON_SVC, ath9k_htc_beaconep,
|
||||
&priv->beacon_ep);
|
||||
if (ret)
|
||||
goto err;
|
||||
|
Reference in New Issue
Block a user