diff --git a/[refs] b/[refs] index ab62aeaf7bec..6878fb44aac7 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3c3b00caf98e5fdaa0184026a68f0008a5bf393e +refs/heads/master: b331615722779b078822988843ddffd4eaec9f83 diff --git a/trunk/net/mac80211/rx.c b/trunk/net/mac80211/rx.c index e2c6f5cd1cf7..969be3adda7a 100644 --- a/trunk/net/mac80211/rx.c +++ b/trunk/net/mac80211/rx.c @@ -988,9 +988,10 @@ ieee80211_rx_h_data(struct ieee80211_txrx_data *rx) memcpy(dst, hdr->addr1, ETH_ALEN); memcpy(src, hdr->addr3, ETH_ALEN); - if (sdata->type != IEEE80211_IF_TYPE_STA) { + if (sdata->type != IEEE80211_IF_TYPE_STA || + (is_multicast_ether_addr(dst) && + !compare_ether_addr(src, dev->dev_addr))) return TXRX_DROP; - } break; case 0: /* DA SA BSSID */