aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRon Rindjunsky <ron.rindjunsky@intel.com>2008-05-04 22:22:51 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-05-14 16:29:47 -0400
commit1b73af8284c3fcbb65eefb9141237b7e45cedd21 (patch)
tree99814b1b248b3452ce0388c7faa7a6ef5efc63e8
parent164669032ecbf7c9a3bc78adad4e13ee486e975c (diff)
iwlwifi: fix spinlock used before initialized
The patch fixes spinlock priv->lock (apm_ops.init) is used before it has been initialized. Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com> Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965.c3
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.c3
2 files changed, 1 insertions, 5 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965.c b/drivers/net/wireless/iwlwifi/iwl-4965.c
index 126ecf7023eb..0b4413830507 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965.c
+++ b/drivers/net/wireless/iwlwifi/iwl-4965.c
@@ -489,10 +489,8 @@ static int iwl4965_disable_tx_fifo(struct iwl_priv *priv)
489 489
490static int iwl4965_apm_init(struct iwl_priv *priv) 490static int iwl4965_apm_init(struct iwl_priv *priv)
491{ 491{
492 unsigned long flags;
493 int ret = 0; 492 int ret = 0;
494 493
495 spin_lock_irqsave(&priv->lock, flags);
496 iwl_set_bit(priv, CSR_GIO_CHICKEN_BITS, 494 iwl_set_bit(priv, CSR_GIO_CHICKEN_BITS,
497 CSR_GIO_CHICKEN_BITS_REG_BIT_DIS_L0S_EXIT_TIMER); 495 CSR_GIO_CHICKEN_BITS_REG_BIT_DIS_L0S_EXIT_TIMER);
498 496
@@ -524,7 +522,6 @@ static int iwl4965_apm_init(struct iwl_priv *priv)
524 522
525 iwl_release_nic_access(priv); 523 iwl_release_nic_access(priv);
526out: 524out:
527 spin_unlock_irqrestore(&priv->lock, flags);
528 return ret; 525 return ret;
529} 526}
530 527
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
index aab0ee6d8af4..7759e63b2bcf 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.c
+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
@@ -174,9 +174,8 @@ int iwl_hw_nic_init(struct iwl_priv *priv)
174 int ret; 174 int ret;
175 175
176 /* nic_init */ 176 /* nic_init */
177 priv->cfg->ops->lib->apm_ops.init(priv);
178
179 spin_lock_irqsave(&priv->lock, flags); 177 spin_lock_irqsave(&priv->lock, flags);
178 priv->cfg->ops->lib->apm_ops.init(priv);
180 iwl_write32(priv, CSR_INT_COALESCING, 512 / 32); 179 iwl_write32(priv, CSR_INT_COALESCING, 512 / 32);
181 spin_unlock_irqrestore(&priv->lock, flags); 180 spin_unlock_irqrestore(&priv->lock, flags);
182 181