mac80211: fix P2P-Device management frame RX
authorJohannes Berg <johannes.berg@intel.com>
Thu, 18 Apr 2013 21:42:19 +0000 (23:42 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Thu, 18 Apr 2013 21:44:41 +0000 (23:44 +0200)
There's an issue in receiving broadcast management frames
on P2P Device virtual interfaces, such frames have the RX
flag IEEE80211_RX_RA_MATCH cleared and are thus dropped
in ieee80211_rx_h_mgmt_check(). They should be let through
to make it to ieee80211_rx_h_userspace_mgmt() and then to
userspace.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/rx.c

index 643fcf7c9dcd4cf0b15edc9e70b53526701cebe5..14b32a4cd7bb579b35c2ebd1b232011d0271d7aa 100644 (file)
@@ -3043,7 +3043,8 @@ static int prepare_for_handlers(struct ieee80211_rx_data *rx,
                    !ieee80211_is_probe_resp(hdr->frame_control) &&
                    !ieee80211_is_beacon(hdr->frame_control))
                        return 0;
-               if (!ether_addr_equal(sdata->vif.addr, hdr->addr1))
+               if (!ether_addr_equal(sdata->vif.addr, hdr->addr1) &&
+                   !multicast)
                        status->rx_flags &= ~IEEE80211_RX_RA_MATCH;
                break;
        default: