aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/rx.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/mac80211/rx.c')
-rw-r--r--net/mac80211/rx.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index e80336f8f1ea..c32a0bcd53b7 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -1823,8 +1823,13 @@ static int prepare_for_handlers(struct ieee80211_sub_if_data *sdata,
1823 if (!bssid) 1823 if (!bssid)
1824 return 0; 1824 return 0;
1825 if ((rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_MGMT && 1825 if ((rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_MGMT &&
1826 (rx->fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_BEACON) 1826 (rx->fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_BEACON) {
1827 if (!rx->sta)
1828 rx->sta = ieee80211_ibss_add_sta(sdata->dev,
1829 rx->skb, bssid, hdr->addr2,
1830 BIT(rx->status->rate_idx));
1827 return 1; 1831 return 1;
1832 }
1828 else if (!ieee80211_bssid_match(bssid, sdata->u.sta.bssid)) { 1833 else if (!ieee80211_bssid_match(bssid, sdata->u.sta.bssid)) {
1829 if (!(rx->flags & IEEE80211_RX_IN_SCAN)) 1834 if (!(rx->flags & IEEE80211_RX_IN_SCAN))
1830 return 0; 1835 return 0;
@@ -1837,7 +1842,8 @@ static int prepare_for_handlers(struct ieee80211_sub_if_data *sdata,
1837 rx->flags &= ~IEEE80211_RX_RA_MATCH; 1842 rx->flags &= ~IEEE80211_RX_RA_MATCH;
1838 } else if (!rx->sta) 1843 } else if (!rx->sta)
1839 rx->sta = ieee80211_ibss_add_sta(sdata->dev, rx->skb, 1844 rx->sta = ieee80211_ibss_add_sta(sdata->dev, rx->skb,
1840 bssid, hdr->addr2); 1845 bssid, hdr->addr2,
1846 BIT(rx->status->rate_idx));
1841 break; 1847 break;
1842 case IEEE80211_IF_TYPE_MESH_POINT: 1848 case IEEE80211_IF_TYPE_MESH_POINT:
1843 if (!multicast && 1849 if (!multicast &&