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
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