2017-01-17 22:55:55

by Gavin Li

[permalink] [raw]
Subject: [PATCH] brcmfmac: fix incorrect event channel deduction

From: Gavin Li <[email protected]>

brcmf_sdio_fromevntchan() was being called on the the data frame
rather than the software header, causing some frames to be
mischaracterized as on the event channel rather than the data channel.

This fixes a major performance regression (due to dropped packets).

Fixes: c56caa9db8ab ("brcmfmac: screening firmware event packet")
Signed-off-by: Gavin Li <[email protected]>
Cc: <[email protected]> [4.6+]
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index dfb0658713d9..d2219885071f 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -1661,7 +1661,7 @@ static u8 brcmf_sdio_rxglom(struct brcmf_sdio *bus, u8 rxseq)
pfirst->len, pfirst->next,
pfirst->prev);
skb_unlink(pfirst, &bus->glom);
- if (brcmf_sdio_fromevntchan(pfirst->data))
+ if (brcmf_sdio_fromevntchan(&dptr[SDPCM_HWHDR_LEN]))
brcmf_rx_event(bus->sdiodev->dev, pfirst);
else
brcmf_rx_frame(bus->sdiodev->dev, pfirst,
--
2.11.0


2017-01-18 10:50:44

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH] brcmfmac: fix incorrect event channel deduction

Kalle Valo <[email protected]> writes:

> [email protected] writes:
>
>> From: Gavin Li <[email protected]>
>>
>> brcmf_sdio_fromevntchan() was being called on the the data frame
>> rather than the software header, causing some frames to be
>> mischaracterized as on the event channel rather than the data channel.
>>
>> This fixes a major performance regression (due to dropped packets).
>>
>> Fixes: c56caa9db8ab ("brcmfmac: screening firmware event packet")
>> Signed-off-by: Gavin Li <[email protected]>
>> Cc: <[email protected]> [4.7+]
>
> In the future please add version to the subject so that maintainers can
> easily find the latest version:
>
> https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches#subject

Ah, I missed that you had submitted v3:

https://patchwork.kernel.org/patch/9522185/

That's the version I'm planning to take (if Arend acks it).

--
Kalle Valo

2017-01-17 23:17:27

by Rafał Miłecki

[permalink] [raw]
Subject: Re: [PATCH] brcmfmac: fix incorrect event channel deduction

On 17 January 2017 at 23:55, <[email protected]> wrote:
> From: Gavin Li <[email protected]>
>
> brcmf_sdio_fromevntchan() was being called on the the data frame
> rather than the software header, causing some frames to be
> mischaracterized as on the event channel rather than the data channel.
>
> This fixes a major performance regression (due to dropped packets).
>
> Fixes: c56caa9db8ab ("brcmfmac: screening firmware event packet")
> Signed-off-by: Gavin Li <[email protected]>
> Cc: <[email protected]> [4.6+]

Oh, that was supposed to be 4.7+, I gave you a wrong hint, sorry!

You may send V3, or maybe ask Kalle to fix it by hand when applying the pat=
ch.

--=20
Rafa=C5=82