mac80211: check for non-managed interface
authorWey-Yi Guy <wey-yi.w.guy@intel.com>
Mon, 23 Apr 2012 16:30:32 +0000 (09:30 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 24 Apr 2012 18:54:27 +0000 (14:54 -0400)
Average beacon signal only keep tracked by managed interface,
give warning and return 0 for the others.

Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/mac80211/util.c

index 8ba8b49..d9a747d 100644 (file)
@@ -1801,6 +1801,10 @@ int ieee80211_ave_rssi(struct ieee80211_vif *vif)
        struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif);
        struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
 
+       if (WARN_ON_ONCE(sdata->vif.type != NL80211_IFTYPE_STATION)) {
+               /* non-managed type inferfaces */
+               return 0;
+       }
        return ifmgd->ave_beacon_signal;
 }
 EXPORT_SYMBOL_GPL(ieee80211_ave_rssi);