aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-lib.c11
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-rxon.c8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn.h2
3 files changed, 10 insertions, 11 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
index 486a8d3a1f0..828416881d6 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
@@ -2272,9 +2272,9 @@ void iwlagn_init_notification_wait(struct iwl_priv *priv,
2272 spin_unlock_bh(&priv->_agn.notif_wait_lock); 2272 spin_unlock_bh(&priv->_agn.notif_wait_lock);
2273} 2273}
2274 2274
2275signed long iwlagn_wait_notification(struct iwl_priv *priv, 2275int iwlagn_wait_notification(struct iwl_priv *priv,
2276 struct iwl_notification_wait *wait_entry, 2276 struct iwl_notification_wait *wait_entry,
2277 unsigned long timeout) 2277 unsigned long timeout)
2278{ 2278{
2279 int ret; 2279 int ret;
2280 2280
@@ -2286,7 +2286,10 @@ signed long iwlagn_wait_notification(struct iwl_priv *priv,
2286 list_del(&wait_entry->list); 2286 list_del(&wait_entry->list);
2287 spin_unlock_bh(&priv->_agn.notif_wait_lock); 2287 spin_unlock_bh(&priv->_agn.notif_wait_lock);
2288 2288
2289 return ret; 2289 /* return value is always >= 0 */
2290 if (ret <= 0)
2291 return -ETIMEDOUT;
2292 return 0;
2290} 2293}
2291 2294
2292void iwlagn_remove_notification(struct iwl_priv *priv, 2295void iwlagn_remove_notification(struct iwl_priv *priv,
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
index ee7c5ba9597..435dd2d6c0a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
@@ -73,13 +73,9 @@ static int iwlagn_disable_pan(struct iwl_priv *priv,
73 IWL_ERR(priv, "Error disabling PAN (%d)\n", ret); 73 IWL_ERR(priv, "Error disabling PAN (%d)\n", ret);
74 iwlagn_remove_notification(priv, &disable_wait); 74 iwlagn_remove_notification(priv, &disable_wait);
75 } else { 75 } else {
76 signed long wait_res; 76 ret = iwlagn_wait_notification(priv, &disable_wait, HZ);
77 77 if (ret)
78 wait_res = iwlagn_wait_notification(priv, &disable_wait, HZ);
79 if (wait_res == 0) {
80 IWL_ERR(priv, "Timed out waiting for PAN disable\n"); 78 IWL_ERR(priv, "Timed out waiting for PAN disable\n");
81 ret = -EIO;
82 }
83 } 79 }
84 80
85 return ret; 81 return ret;
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.h b/drivers/net/wireless/iwlwifi/iwl-agn.h
index b9871c4b3c1..ba90aa47477 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn.h
+++ b/drivers/net/wireless/iwlwifi/iwl-agn.h
@@ -343,7 +343,7 @@ iwlagn_init_notification_wait(struct iwl_priv *priv,
343 struct iwl_rx_packet *pkt, 343 struct iwl_rx_packet *pkt,
344 void *data), 344 void *data),
345 void *fn_data); 345 void *fn_data);
346signed long __releases(wait_entry) 346int __must_check __releases(wait_entry)
347iwlagn_wait_notification(struct iwl_priv *priv, 347iwlagn_wait_notification(struct iwl_priv *priv,
348 struct iwl_notification_wait *wait_entry, 348 struct iwl_notification_wait *wait_entry,
349 unsigned long timeout); 349 unsigned long timeout);