aboutsummaryrefslogtreecommitdiffstats
path: root/package/kernel/mac80211/patches/352-v5.4-0004-brcmfmac-clear-events-in-brcmf_fweh_detach-will-alwa.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/kernel/mac80211/patches/352-v5.4-0004-brcmfmac-clear-events-in-brcmf_fweh_detach-will-alwa.patch')
-rw-r--r--package/kernel/mac80211/patches/352-v5.4-0004-brcmfmac-clear-events-in-brcmf_fweh_detach-will-alwa.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/package/kernel/mac80211/patches/352-v5.4-0004-brcmfmac-clear-events-in-brcmf_fweh_detach-will-alwa.patch b/package/kernel/mac80211/patches/352-v5.4-0004-brcmfmac-clear-events-in-brcmf_fweh_detach-will-alwa.patch
new file mode 100644
index 0000000000..8483249db6
--- /dev/null
+++ b/package/kernel/mac80211/patches/352-v5.4-0004-brcmfmac-clear-events-in-brcmf_fweh_detach-will-alwa.patch
@@ -0,0 +1,37 @@
+From 0d91defd7bfc42c0ed053ba03b5ea2eff2e1d2f5 Mon Sep 17 00:00:00 2001
+From: Arend van Spriel <arend.vanspriel@broadcom.com>
+Date: Thu, 11 Jul 2019 11:05:09 +0200
+Subject: [PATCH 4/7] brcmfmac: clear events in brcmf_fweh_detach() will always
+ fail
+
+Clearing firmware events in brcmf_fweh_detach() is always failing
+because it is called only upon driver remove and communication
+with firmware is no longer possible.
+
+Reviewed-by: Hante Meuleman <hante.meuleman@broadcom.com>
+Reviewed-by: Pieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
+Reviewed-by: Franky Lin <franky.lin@broadcom.com>
+Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com>
+---
+ drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c
+@@ -314,16 +314,7 @@ void brcmf_fweh_attach(struct brcmf_pub
+ void brcmf_fweh_detach(struct brcmf_pub *drvr)
+ {
+ struct brcmf_fweh_info *fweh = &drvr->fweh;
+- struct brcmf_if *ifp = brcmf_get_ifp(drvr, 0);
+- s8 eventmask[BRCMF_EVENTING_MASK_LEN];
+
+- if (ifp) {
+- /* clear all events */
+- memset(eventmask, 0, BRCMF_EVENTING_MASK_LEN);
+- (void)brcmf_fil_iovar_data_set(ifp, "event_msgs",
+- eventmask,
+- BRCMF_EVENTING_MASK_LEN);
+- }
+ /* cancel the worker */
+ cancel_work_sync(&fweh->event_work);
+ WARN_ON(!list_empty(&fweh->event_q));