Message ID | 20170117222909.2880-1-gavinli@thegavinli.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Kalle Valo |
Headers | show |
On 17 January 2017 at 23:29, <gavinli@thegavinli.com> wrote: > From: Gavin Li <git@thegavinli.com> > > brcmf_sdio_fromevntchan() was being called on the the hardware header > rather than the software header, causing some frames to be > mischaracterized as on the event channel rather than the data channel. > This fixes the performance regression introduced in commit c56caa9d > where event processing is done separately. This should be: in commit c56caa9db8ab ("brcmfmac: screening firmware event packet") where (...) You should also use Fixes: c56caa9db8ab ("brcmfmac: screening firmware event packet") where (...) > Signed-off-by: Gavin Li <git@thegavinli.com> Please add also: Cc: stable@vger.kernel.org # 4.6+
On 17 January 2017 at 23:41, Rafał Miłecki <zajec5@gmail.com> wrote: > On 17 January 2017 at 23:29, <gavinli@thegavinli.com> wrote: >> From: Gavin Li <git@thegavinli.com> >> >> brcmf_sdio_fromevntchan() was being called on the the hardware header >> rather than the software header, causing some frames to be >> mischaracterized as on the event channel rather than the data channel. >> This fixes the performance regression introduced in commit c56caa9d >> where event processing is done separately. > > This should be: > in commit c56caa9db8ab ("brcmfmac: screening firmware event packet") where (...) > > You should also use > Fixes: c56caa9db8ab ("brcmfmac: screening firmware event packet") where (...) Oops, copy & paste mistake. Just: Fixes: c56caa9db8ab ("brcmfmac: screening firmware event packet")
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,