浏览代码

iwlagn: check ready in iwlagn_bss_info_changed()

In function iwlagn_bss_info_changed(), we need to check if the driver
is ready before doing real work. Also, the previously put WARN() is
removed because the vif is not guaranteed to be valid. uCode restart
routine will clear the vif.

Signed-off-by: Shanyu Zhao <shanyu.zhao@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Shanyu Zhao 14 年之前
父节点
当前提交
ae0b693c12
共有 1 个文件被更改,包括 8 次插入1 次删除
  1. 8 1
      drivers/net/wireless/iwlwifi/iwl-agn-rxon.c

+ 8 - 1
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c

@@ -518,7 +518,14 @@ void iwlagn_bss_info_changed(struct ieee80211_hw *hw,
 
 
 	mutex_lock(&priv->mutex);
 	mutex_lock(&priv->mutex);
 
 
-	if (WARN_ON(!ctx->vif)) {
+	if (unlikely(!iwl_is_ready(priv))) {
+                IWL_DEBUG_MAC80211(priv, "leave - not ready\n");
+                mutex_unlock(&priv->mutex);
+		return;
+        }
+
+	if (unlikely(!ctx->vif)) {
+		IWL_DEBUG_MAC80211(priv, "leave - vif is NULL\n");
 		mutex_unlock(&priv->mutex);
 		mutex_unlock(&priv->mutex);
 		return;
 		return;
 	}
 	}