mac80211: do not call rate control .tx_status before .rate_init
authorFelix Fietkau <nbd@openwrt.org>
Wed, 8 Feb 2012 18:17:11 +0000 (19:17 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 15 Feb 2012 18:56:06 +0000 (13:56 -0500)
Most rate control implementations assume .get_rate and .tx_status are only
called once the per-station data has been fully initialized.
minstrel_ht crashes if this assumption is violated.

Signed-off-by: Felix Fietkau <nbd@openwrt.org>
Tested-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/rate.h

index 2b83f32144fd80073a2a5b5554b141672ab9d7c9..80cfc006dd7408331c753350393c179888b76004 100644 (file)
@@ -41,7 +41,7 @@ static inline void rate_control_tx_status(struct ieee80211_local *local,
        struct ieee80211_sta *ista = &sta->sta;
        void *priv_sta = sta->rate_ctrl_priv;
 
-       if (!ref)
+       if (!ref || !test_sta_flag(sta, WLAN_STA_RATE_CONTROL))
                return;
 
        ref->ops->tx_status(ref->priv, sband, ista, priv_sta, skb);