Browse Source

iwlwifi: change check triggering device restart after rfkill change

The STATUS_ALIVE value cannot be used because it is cleared when
interface is brought down and will not be set if rfkill is enabled when
interface is started again. The interface can thus not be brought up if
rfkill was enabled before stopping the interface and disabled after
starting the interface.

Change the test to use priv->is_open instead, this will be set when
interface is started whether rfkill is enabled or not.

Thanks to Helmut Schaa for the suggested fix.

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Acked-by: Helmut Schaa <helmut.schaa@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Reinette Chatre 16 years ago
parent
commit
55a3757a57
1 changed files with 1 additions and 1 deletions
  1. 1 1
      drivers/net/wireless/iwlwifi/iwl-core.c

+ 1 - 1
drivers/net/wireless/iwlwifi/iwl-core.c

@@ -2054,7 +2054,7 @@ void iwl_bg_rf_kill(struct work_struct *work)
 			  "HW and/or SW RF Kill no longer active, restarting "
 			  "HW and/or SW RF Kill no longer active, restarting "
 			  "device\n");
 			  "device\n");
 		if (!test_bit(STATUS_EXIT_PENDING, &priv->status) &&
 		if (!test_bit(STATUS_EXIT_PENDING, &priv->status) &&
-		    test_bit(STATUS_ALIVE, &priv->status))
+		    priv->is_open)
 			queue_work(priv->workqueue, &priv->restart);
 			queue_work(priv->workqueue, &priv->restart);
 	} else {
 	} else {
 		/* make sure mac80211 stop sending Tx frame */
 		/* make sure mac80211 stop sending Tx frame */