brcmfmac: ignore IF event if firmware indicates it
authorArend van Spriel <arend@broadcom.com>
Sat, 10 Aug 2013 10:27:24 +0000 (12:27 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Thu, 15 Aug 2013 20:07:54 +0000 (16:07 -0400)
Not every IF event from the firmware needs to result in a
related interface, netdev or wdev, on the host. This is
indicated in the event message. Handle that flag and effectively
ignore the firmware event.

Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/brcm80211/brcmfmac/dhd.h
drivers/net/wireless/brcm80211/brcmfmac/fweh.c

index 1273dfdb521ba8a806eb62b5933107cfa2b9dab8..2eb9e642c9bf80d604bea8d201d86a0bb5c1a524 100644 (file)
 #define BRCMF_E_IF_DEL                         2
 #define BRCMF_E_IF_CHANGE                      3
 
+#define BRCMF_E_IF_FLAG_NOIF                   1
+
 #define BRCMF_E_IF_ROLE_STA                    0
 #define BRCMF_E_IF_ROLE_AP                     1
 #define BRCMF_E_IF_ROLE_WDS                    2
index 83ee53a7c76eae14073ef3e78850663879d71371..fad77dd2a3a543f511de0371eaf94ed4a1fc34f1 100644 (file)
@@ -185,6 +185,10 @@ static void brcmf_fweh_handle_if_event(struct brcmf_pub *drvr,
                  ifevent->action, ifevent->ifidx, ifevent->bssidx,
                  ifevent->flags, ifevent->role);
 
+       if (ifevent->flags & BRCMF_E_IF_FLAG_NOIF) {
+               brcmf_dbg(EVENT, "event can be ignored\n");
+               return;
+       }
        if (ifevent->ifidx >= BRCMF_MAX_IFS) {
                brcmf_err("invalid interface index: %u\n",
                          ifevent->ifidx);
This page took 0.039341 seconds and 5 git commands to generate.