summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl4965-base.c
diff options
context:
space:
mode:
authorEmmanuel Grumbach2008-06-30 11:23:19 +0200
committerJohn W. Linville2008-06-30 23:37:43 +0200
commit3bff19c203d216436a73e56b8298bebd5ea75a3f (patch)
treea1872c04ac3d4f39068832517757be2cf7bcd7d6 /drivers/net/wireless/iwlwifi/iwl4965-base.c
parentiwlwifi : Patch adds rfkill subsystem for 3945 (diff)
downloadkernel-qcow2-linux-3bff19c203d216436a73e56b8298bebd5ea75a3f.tar.gz
kernel-qcow2-linux-3bff19c203d216436a73e56b8298bebd5ea75a3f.tar.xz
kernel-qcow2-linux-3bff19c203d216436a73e56b8298bebd5ea75a3f.zip
iwlwifi: don't bring up interface if RF-kill avoids radio
This patch avoids the user from bringing up the interface if RF-kill doesn't allow radio. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Mohamed Abbas <mohamed.abbas@intel.com> Signed-off-by: Tomas Winkler <tomas.winkler@intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl4965-base.c')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl4965-base.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c
index d1bf599e483f..2d0d079a24ec 100644
--- a/drivers/net/wireless/iwlwifi/iwl4965-base.c
+++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c
@@ -2187,13 +2187,15 @@ static int __iwl4965_up(struct iwl_priv *priv)
if (iwl_read32(priv, CSR_GP_CNTRL) &
CSR_GP_CNTRL_REG_FLAG_HW_RF_KILL_SW)
clear_bit(STATUS_RF_KILL_HW, &priv->status);
- else {
+ else
set_bit(STATUS_RF_KILL_HW, &priv->status);
- if (!test_bit(STATUS_IN_SUSPEND, &priv->status)) {
- iwl_rfkill_set_hw_state(priv);
- IWL_WARNING("Radio disabled by HW RF Kill switch\n");
- return -ENODEV;
- }
+
+ if (!test_bit(STATUS_IN_SUSPEND, &priv->status) &&
+ iwl_is_rfkill(priv)) {
+ iwl_rfkill_set_hw_state(priv);
+ IWL_WARNING("Radio disabled by %s RF Kill switch\n",
+ test_bit(STATUS_RF_KILL_HW, &priv->status) ? "HW" : "SW");
+ return -ENODEV;
}
iwl_rfkill_set_hw_state(priv);