Files
build/patch/kernel/archive/sunxi-5.15/patches.cypress/0045-non-upstream-ignore-FW-BADARG-error-when-removing-no.patch

50 lines
1.9 KiB
Diff

From 2c09290d3db101e44d00a2ece31769aa8aa47eef Mon Sep 17 00:00:00 2001
From: Wright Feng <wright.feng@cypress.com>
Date: Wed, 29 Apr 2020 00:51:13 -0500
Subject: [PATCH 045/179] non-upstream: ignore FW BADARG error when removing
non-existed pkt filter
The error check -ENOENT in removing packet filter never happen because
fwil_fwerr is falase. We should set fwil_fwerr to true and ignore FW
BADARG(-2) error if firmware does not have that packet filter pattern in
the list.
Signed-off-by: Wright Feng <wright.feng@cypress.com>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 4 +++-
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h | 1 +
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
index 6587d0d92950..1a27f0686c95 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
@@ -1718,9 +1718,11 @@ brcmf_pktfilter_add_remove(struct net_device *ndev, int filter_num, bool add)
} else {
/* Delete filter */
+ ifp->fwil_fwerr = true;
ret = brcmf_fil_iovar_int_set(ifp, "pkt_filter_delete",
pkt_filter->id);
- if (ret == -ENOENT)
+ ifp->fwil_fwerr = false;
+ if (ret == -BRCMF_FW_BADARG)
ret = 0;
if (ret)
goto failed;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h
index caf18d3b4cca..8a9fca90323a 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil.h
@@ -79,6 +79,7 @@
#define BRCMF_C_SET_VAR 263
#define BRCMF_C_SET_WSEC_PMK 268
+#define BRCMF_FW_BADARG 2
#define BRCMF_FW_UNSUPPORTED 23
s32 brcmf_fil_cmd_data_set(struct brcmf_if *ifp, u32 cmd, void *data, u32 len);
--
2.17.1