From 8ff5379677d7be33159151614a68c2879a33172e Mon Sep 17 00:00:00 2001 From: Johannes Berg Date: Mon, 14 Feb 2011 12:20:22 +0100 Subject: [PATCH] --- yaml --- r: 237383 b: refs/heads/master c: c269a20393500e84e8cbae23ca6d65e1107433c4 h: refs/heads/master i: 237381: 3d2c5a600c8916b20f12a5631d9cff573ee3b0c0 237379: d124e943395c26e60e3b0232d224ce2e955fc0cc 237375: e6ecb0921abe6be71e2df47d80b98e5d1f259341 v: v3 --- [refs] | 2 +- trunk/net/mac80211/ibss.c | 11 ++++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index a8408617f978..b3659ccb12bf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 05e051d8ae3472302ec7c510ab6d4d85551bd1ea +refs/heads/master: c269a20393500e84e8cbae23ca6d65e1107433c4 diff --git a/trunk/net/mac80211/ibss.c b/trunk/net/mac80211/ibss.c index 775fb63471c4..a42aa61269ea 100644 --- a/trunk/net/mac80211/ibss.c +++ b/trunk/net/mac80211/ibss.c @@ -664,12 +664,13 @@ static void ieee80211_sta_find_ibss(struct ieee80211_sub_if_data *sdata) } static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata, - struct ieee80211_mgmt *mgmt, - size_t len) + struct sk_buff *req) { + struct ieee80211_rx_status *rx_status = IEEE80211_SKB_RXCB(req); + struct ieee80211_mgmt *mgmt = (void *)req->data; struct ieee80211_if_ibss *ifibss = &sdata->u.ibss; struct ieee80211_local *local = sdata->local; - int tx_last_beacon; + int tx_last_beacon, len = req->len; struct sk_buff *skb; struct ieee80211_mgmt *resp; u8 *pos, *end; @@ -689,7 +690,7 @@ static void ieee80211_rx_mgmt_probe_req(struct ieee80211_sub_if_data *sdata, mgmt->bssid, tx_last_beacon); #endif /* CONFIG_MAC80211_IBSS_DEBUG */ - if (!tx_last_beacon) + if (!tx_last_beacon && !(rx_status->rx_flags & IEEE80211_RX_RA_MATCH)) return; if (memcmp(mgmt->bssid, ifibss->bssid, ETH_ALEN) != 0 && @@ -786,7 +787,7 @@ void ieee80211_ibss_rx_queued_mgmt(struct ieee80211_sub_if_data *sdata, switch (fc & IEEE80211_FCTL_STYPE) { case IEEE80211_STYPE_PROBE_REQ: - ieee80211_rx_mgmt_probe_req(sdata, mgmt, skb->len); + ieee80211_rx_mgmt_probe_req(sdata, skb); break; case IEEE80211_STYPE_PROBE_RESP: ieee80211_rx_mgmt_probe_resp(sdata, mgmt, skb->len,