iwlagn: check ready in iwlagn_bss_info_changed()
authorShanyu Zhao <shanyu.zhao@intel.com>
Thu, 2 Dec 2010 19:02:28 +0000 (11:02 -0800)
committerWey-Yi Guy <wey-yi.w.guy@intel.com>
Mon, 13 Dec 2010 23:51:18 +0000 (15:51 -0800)
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>
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c

index 4865b82355d7d02ff53eca1331f39913d242e124..769479eb6ea98c7b4b4a5a4c54cf8d09f5bf7b38 100644 (file)
@@ -518,7 +518,14 @@ void iwlagn_bss_info_changed(struct ieee80211_hw *hw,
 
        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);
                return;
        }