aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2011-04-13 06:14:48 -0400
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2011-04-22 13:02:55 -0400
commita8674a1efca60d863d4caa47e102cc4d70d5ff9b (patch)
tree13216e202f8d78d178174f46c7fa8654422b6c9e /drivers/net
parent09f18afe766ea3f2c749e3af195bf65fde71b62e (diff)
iwlagn: make iwlagn_wait_notification return error code
We're unlikely to care about the actual time spent waiting, so make the function return an error code which is less error prone in coding new uses. Also, while at it, mark __must_check. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Diffstat (limited to 'drivers/net')
-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);