]>
Commit | Line | Data |
---|---|---|
dd5b528c GKH |
1 | From foo@baz Tue 04 Jun 2019 04:46:27 PM CEST |
2 | From: Gavin Li <git@thegavinli.com> | |
3 | Date: Tue, 17 Jan 2017 15:24:05 -0800 | |
4 | Subject: brcmfmac: fix incorrect event channel deduction | |
5 | ||
6 | From: Gavin Li <git@thegavinli.com> | |
7 | ||
8 | commit 8e290cecdd0178f3d4cf7d463c51dc7e462843b4 upstream. | |
9 | ||
10 | brcmf_sdio_fromevntchan() was being called on the the data frame | |
11 | rather than the software header, causing some frames to be | |
12 | mischaracterized as on the event channel rather than the data channel. | |
13 | ||
14 | This fixes a major performance regression (due to dropped packets). With | |
15 | this patch the download speed jumped from 1Mbit/s back up to 40MBit/s due | |
16 | to the sheer amount of packets being incorrectly processed. | |
17 | ||
18 | Fixes: c56caa9db8ab ("brcmfmac: screening firmware event packet") | |
19 | Signed-off-by: Gavin Li <git@thegavinli.com> | |
20 | Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com> | |
21 | [kvalo@codeaurora.org: improve commit logs based on email discussion] | |
22 | Signed-off-by: Kalle Valo <kvalo@codeaurora.org> | |
23 | [bwh: Backported to 4.4: adjust filename] | |
24 | Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk> | |
25 | Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> | |
26 | --- | |
27 | drivers/net/wireless/brcm80211/brcmfmac/sdio.c | 2 +- | |
28 | 1 file changed, 1 insertion(+), 1 deletion(-) | |
29 | ||
30 | --- a/drivers/net/wireless/brcm80211/brcmfmac/sdio.c | |
31 | +++ b/drivers/net/wireless/brcm80211/brcmfmac/sdio.c | |
32 | @@ -1765,7 +1765,7 @@ static u8 brcmf_sdio_rxglom(struct brcmf | |
33 | pfirst->len, pfirst->next, | |
34 | pfirst->prev); | |
35 | skb_unlink(pfirst, &bus->glom); | |
36 | - if (brcmf_sdio_fromevntchan(pfirst->data)) | |
37 | + if (brcmf_sdio_fromevntchan(&dptr[SDPCM_HWHDR_LEN])) | |
38 | brcmf_rx_event(bus->sdiodev->dev, pfirst); | |
39 | else | |
40 | brcmf_rx_frame(bus->sdiodev->dev, pfirst, |