From e21e2f4a293d061ef93101d2953f138aba18e11e Mon Sep 17 00:00:00 2001 From: Wright Feng Date: Fri, 10 Jul 2020 04:38:46 -0500 Subject: [PATCH 043/296] non-upstream: return error when getting invalid max_flowrings from dongle When firmware hit trap at initialization, host will read abnormal max_flowrings number from dongle, and it will causes kernel panic when doing iowrite to initialize dongle ring. To detect this error at early stage, we directly return error when getting invalid max_flowrings(>256). Based on our spec "PCIe_Dongle_Host_Interface_Spec", its flow ring size is 256 but BCM4366 expanded to 264. It will cause this chip can't load fw issue. see detail at "wifi: brcmfmac: fix regression for Broadcom PCIe wifi devices." Therefore, we can't do upstream this solution. Signed-off-by: Wright Feng Signed-off-by: Chi-hsien Lin Signed-off-by: Shelley Yang --- drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c index cab4903c0d8e..071184e42e6e 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c @@ -1510,7 +1510,7 @@ static int brcmf_pcie_init_ringbuffers(struct brcmf_pciedev_info *devinfo) BRCMF_NROF_H2D_COMMON_MSGRINGS; max_completionrings = BRCMF_NROF_D2H_COMMON_MSGRINGS; } - if (max_flowrings > 512) { + if (max_flowrings > 256) { brcmf_err(bus, "invalid max_flowrings(%d)\n", max_flowrings); return -EIO; } -- 2.25.1