Ben,
Found this while building v3.2.17-rt28:
diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
index f98becc..833cbef 100644
--- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
@@ -7879,7 +7879,7 @@ brcms_c_recvctl(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
if (wlc->hw->suspended_fifos) {
hdr = (struct ieee80211_hdr *)p->data;
if (ieee80211_is_beacon(hdr->frame_control))
- brcms_b_mute(wlc->hw, false);
+ brcms_b_mute(wlc->hw, false, 0);
}
memcpy(IEEE80211_SKB_RXCB(p), &rx_status, sizeof(rx_status));
Not sure if that's completely correct but I found another call site for
brcms_b_mute() that also passed 0 flags.
Clark
On Tue, 2012-05-15 at 14:04 -0500, Clark Williams wrote:
> Ben,
>
> Found this while building v3.2.17-rt28:
>
> diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
> index f98becc..833cbef 100644
> --- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
> +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
> @@ -7879,7 +7879,7 @@ brcms_c_recvctl(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
> if (wlc->hw->suspended_fifos) {
> hdr = (struct ieee80211_hdr *)p->data;
> if (ieee80211_is_beacon(hdr->frame_control))
> - brcms_b_mute(wlc->hw, false);
> + brcms_b_mute(wlc->hw, false, 0);
> }
>
> memcpy(IEEE80211_SKB_RXCB(p), &rx_status, sizeof(rx_status));
>
> Not sure if that's completely correct but I found another call site for
> brcms_b_mute() that also passed 0 flags.
The bug was caused by this patch:
commit d609909f0d6c69937057237b3eff577311d08d07
Author: Arend van Spriel <[email protected]>
brcm80211: smac: resume transmit fifo upon receiving frames
(mainline: badc4f07622f0f7093a201638f45e85765f1b5e4)
Because it was added to mainline after this patch:
commit c6c44893c864429a7c6a4f7942dfb3ee182b4ad1
Author: Roland Vossen <[email protected]>
brcm80211: smac: fixed inconsistency in transmit mute
Which converted brcms_b_mute() from 3 arguments to 2.
-- Steve
On Tue, 2012-05-15 at 14:04 -0500, Clark Williams wrote:
> Ben,
>
> Found this while building v3.2.17-rt28:
>
> diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
> index f98becc..833cbef 100644
> --- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
> +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
> @@ -7879,7 +7879,7 @@ brcms_c_recvctl(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
> if (wlc->hw->suspended_fifos) {
> hdr = (struct ieee80211_hdr *)p->data;
> if (ieee80211_is_beacon(hdr->frame_control))
> - brcms_b_mute(wlc->hw, false);
> + brcms_b_mute(wlc->hw, false, 0);
> }
>
> memcpy(IEEE80211_SKB_RXCB(p), &rx_status, sizeof(rx_status));
>
> Not sure if that's completely correct but I found another call site for
> brcms_b_mute() that also passed 0 flags.
Thanks, but this fix is already in the queue for 3.2.18.
Ben.
--
Ben Hutchings
The two most common things in the universe are hydrogen and stupidity.