|
|
@@ -339,7 +339,17 @@
|
|
|
break;
|
|
|
case cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP):
|
|
|
case cpu_to_le16(IEEE80211_STYPE_REASSOC_RESP):
|
|
|
-@@ -3059,10 +3067,16 @@ static int prepare_for_handlers(struct i
|
|
|
+@@ -3008,6 +3016,9 @@ static int prepare_for_handlers(struct i
|
|
|
+ case NL80211_IFTYPE_ADHOC:
|
|
|
+ if (!bssid)
|
|
|
+ return 0;
|
|
|
++ if (ether_addr_equal(sdata->vif.addr, hdr->addr2) ||
|
|
|
++ ether_addr_equal(sdata->u.ibss.bssid, hdr->addr2))
|
|
|
++ return 0;
|
|
|
+ if (ieee80211_is_beacon(hdr->frame_control)) {
|
|
|
+ return 1;
|
|
|
+ } else if (!ieee80211_bssid_match(bssid, sdata->u.ibss.bssid)) {
|
|
|
+@@ -3059,10 +3070,16 @@ static int prepare_for_handlers(struct i
|
|
|
}
|
|
|
break;
|
|
|
case NL80211_IFTYPE_WDS:
|