2013-04-18 21:46:57

by Johannes Berg

[permalink] [raw]
Subject: [PATCH] mac80211: fix P2P-Device management frame RX

From: Johannes Berg <[email protected]>

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 <[email protected]>
---
net/mac80211/rx.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 643fcf7..14b32a4 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -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:
--
1.8.0



2013-04-22 13:35:42

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: fix P2P-Device management frame RX

On Thu, 2013-04-18 at 23:46 +0200, Johannes Berg wrote:
> From: Johannes Berg <[email protected]>
>
> 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.

Applied.

johannes