brcmfmac: fix incorrect event channel deduction
authorGavin Li <git@thegavinli.com>
Tue, 17 Jan 2017 23:24:05 +0000 (15:24 -0800)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 20 Jan 2017 10:02:28 +0000 (12:02 +0200)
commit8e290cecdd0178f3d4cf7d463c51dc7e462843b4
tree19726dac9768baae942013dff257b08073d91fbd
parent1ee83789fc1fb40f4d2f3dddd838c2c3860dadb9
brcmfmac: fix incorrect event channel deduction

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). With
this patch the download speed jumped from 1Mbit/s back up to 40MBit/s due
to the sheer amount of packets being incorrectly processed.

Fixes: c56caa9db8ab ("brcmfmac: screening firmware event packet")
Signed-off-by: Gavin Li <git@thegavinli.com>
Cc: <stable@vger.kernel.org> # 4.7+
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
[kvalo@codeaurora.org: improve commit logs based on email discussion]
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c