You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@nuttx.apache.org by xi...@apache.org on 2022/07/02 09:39:58 UTC

[incubator-nuttx] branch master updated: wireless/bcm43xxx: discard auth event if netdev down

This is an automated email from the ASF dual-hosted git repository.

xiaoxiang pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git


The following commit(s) were added to refs/heads/master by this push:
     new 14f1519d1e wireless/bcm43xxx: discard auth event if netdev down
14f1519d1e is described below

commit 14f1519d1e61a1fe8440a2ac274411910f3aefa5
Author: chao.an <an...@xiaomi.com>
AuthorDate: Sat Jul 2 12:58:28 2022 +0800

    wireless/bcm43xxx: discard auth event if netdev down
    
    Signed-off-by: chao.an <an...@xiaomi.com>
---
 drivers/wireless/ieee80211/bcm43xxx/bcmf_driver.c | 5 +++++
 drivers/wireless/ieee80211/bcm43xxx/bcmf_netdev.c | 8 ++++----
 2 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/drivers/wireless/ieee80211/bcm43xxx/bcmf_driver.c b/drivers/wireless/ieee80211/bcm43xxx/bcmf_driver.c
index e92393d3c8..c0978e3aa7 100644
--- a/drivers/wireless/ieee80211/bcm43xxx/bcmf_driver.c
+++ b/drivers/wireless/ieee80211/bcm43xxx/bcmf_driver.c
@@ -645,6 +645,11 @@ void bcmf_wl_auth_event_handler(FAR struct bcmf_dev_s *priv,
   wlinfo("Got auth event %" PRId32 " status %" PRId32 " from <%s>\n",
          type, status, event->src_name);
 
+  if (!priv->bc_bifup)
+    {
+      return;
+    }
+
   bcmf_hexdump((uint8_t *)event, len, (unsigned long)event);
 
   if (type == WLC_E_SET_SSID && status == WLC_E_STATUS_SUCCESS)
diff --git a/drivers/wireless/ieee80211/bcm43xxx/bcmf_netdev.c b/drivers/wireless/ieee80211/bcm43xxx/bcmf_netdev.c
index 2d0583b246..051a8a66ea 100644
--- a/drivers/wireless/ieee80211/bcm43xxx/bcmf_netdev.c
+++ b/drivers/wireless/ieee80211/bcm43xxx/bcmf_netdev.c
@@ -759,6 +759,10 @@ static int bcmf_ifdown(FAR struct net_driver_s *dev)
 
   if (priv->bc_bifup)
     {
+      /* Mark the device "down" */
+
+      priv->bc_bifup = false;
+
 #ifdef CONFIG_IEEE80211_BROADCOM_LOWPOWER
       if (!work_available(&priv->lp_work))
         {
@@ -768,10 +772,6 @@ static int bcmf_ifdown(FAR struct net_driver_s *dev)
 
       bcmf_wl_enable(priv, false);
       bcmf_wl_active(priv, false);
-
-      /* Mark the device "down" */
-
-      priv->bc_bifup = false;
     }
 
   leave_critical_section(flags);