|
|
|
@ -3105,7 +3105,17 @@ |
|
|
|
|
break;
|
|
|
|
|
case cpu_to_le16(IEEE80211_STYPE_ASSOC_RESP):
|
|
|
|
|
case cpu_to_le16(IEEE80211_STYPE_REASSOC_RESP):
|
|
|
|
|
@@ -3031,10 +3060,16 @@ static int prepare_for_handlers(struct i
|
|
|
|
|
@@ -3023,6 +3052,9 @@ static int prepare_for_handlers(struct i
|
|
|
|
|
* and location updates. Note that mac80211
|
|
|
|
|
* itself never looks at these frames.
|
|
|
|
|
*/
|
|
|
|
|
+ if (!multicast &&
|
|
|
|
|
+ !ether_addr_equal(sdata->vif.addr, hdr->addr1))
|
|
|
|
|
+ return 0;
|
|
|
|
|
if (ieee80211_is_public_action(hdr, skb->len))
|
|
|
|
|
return 1;
|
|
|
|
|
if (!ieee80211_is_beacon(hdr->frame_control))
|
|
|
|
|
@@ -3031,10 +3063,16 @@ static int prepare_for_handlers(struct i
|
|
|
|
|
}
|
|
|
|
|
break;
|
|
|
|
|
case NL80211_IFTYPE_WDS:
|
|
|
|
|