Skip to content

Commit

Permalink
staging: brcm80211: remove filtering of received frames
Browse files Browse the repository at this point in the history
In the receive path of the brcmsmac driver probe request frames and
frames with invalid mac address fields are dropped. This is only
fine for STA mode. Anticipating coming AP and monitor mode functionality
this is unwanted behavior.

Reported-by: Johannes Berg <johannes@sipsolutions.net>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Roland Vossen <rvossen@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Arend van Spriel authored and Greg Kroah-Hartman committed Oct 5, 2011
1 parent 215f311 commit 67064f2
Showing 1 changed file with 1 addition and 22 deletions.
23 changes: 1 addition & 22 deletions drivers/staging/brcm80211/brcmsmac/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -8238,29 +8238,8 @@ void brcms_c_recv(struct brcms_c_info *wlc, struct sk_buff *p)
if (len < D11_PHY_HDR_LEN + sizeof(h->frame_control))
goto toss;

/* not supporting A-MSDU */
is_amsdu = rxh->RxStatus2 & RXS_AMSDU_MASK;

/* explicitly test bad src address to avoid sending bad deauth */
if (!is_amsdu) {
/* CTS and ACK CTL frames are w/o a2 */

if (ieee80211_is_data(h->frame_control) ||
ieee80211_is_mgmt(h->frame_control)) {
if ((is_zero_ether_addr(h->addr2) ||
is_multicast_ether_addr(h->addr2))) {
wiphy_err(wlc->wiphy, "wl%d: %s: dropping a "
"frame with invalid src mac address,"
" a2: %pM\n",
wlc->pub->unit, __func__, h->addr2);
goto toss;
}
}
}

/* due to sheer numbers, toss out probe reqs for now */
if (ieee80211_is_probe_req(h->frame_control))
goto toss;

if (is_amsdu)
goto toss;

Expand Down

0 comments on commit 67064f2

Please sign in to comment.