OSDN Git Service

iwlagn: make iwlagn_wait_notification return error code
authorJohannes Berg <johannes.berg@intel.com>
Wed, 13 Apr 2011 10:14:48 +0000 (03:14 -0700)
committerWey-Yi Guy <wey-yi.w.guy@intel.com>
Fri, 22 Apr 2011 17:02:55 +0000 (10:02 -0700)
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>
drivers/net/wireless/iwlwifi/iwl-agn-lib.c
drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
drivers/net/wireless/iwlwifi/iwl-agn.h

index 486a8d3..8284168 100644 (file)
@@ -2272,9 +2272,9 @@ void iwlagn_init_notification_wait(struct iwl_priv *priv,
        spin_unlock_bh(&priv->_agn.notif_wait_lock);
 }
 
-signed long iwlagn_wait_notification(struct iwl_priv *priv,
-                                    struct iwl_notification_wait *wait_entry,
-                                    unsigned long timeout)
+int iwlagn_wait_notification(struct iwl_priv *priv,
+                            struct iwl_notification_wait *wait_entry,
+                            unsigned long timeout)
 {
        int ret;
 
@@ -2286,7 +2286,10 @@ signed long iwlagn_wait_notification(struct iwl_priv *priv,
        list_del(&wait_entry->list);
        spin_unlock_bh(&priv->_agn.notif_wait_lock);
 
-       return ret;
+       /* return value is always >= 0 */
+       if (ret <= 0)
+               return -ETIMEDOUT;
+       return 0;
 }
 
 void iwlagn_remove_notification(struct iwl_priv *priv,
index ee7c5ba..435dd2d 100644 (file)
@@ -73,13 +73,9 @@ static int iwlagn_disable_pan(struct iwl_priv *priv,
                IWL_ERR(priv, "Error disabling PAN (%d)\n", ret);
                iwlagn_remove_notification(priv, &disable_wait);
        } else {
-               signed long wait_res;
-
-               wait_res = iwlagn_wait_notification(priv, &disable_wait, HZ);
-               if (wait_res == 0) {
+               ret = iwlagn_wait_notification(priv, &disable_wait, HZ);
+               if (ret)
                        IWL_ERR(priv, "Timed out waiting for PAN disable\n");
-                       ret = -EIO;
-               }
        }
 
        return ret;
index b9871c4..ba90aa4 100644 (file)
@@ -343,7 +343,7 @@ iwlagn_init_notification_wait(struct iwl_priv *priv,
                                         struct iwl_rx_packet *pkt,
                                         void *data),
                              void *fn_data);
-signed long __releases(wait_entry)
+int __must_check __releases(wait_entry)
 iwlagn_wait_notification(struct iwl_priv *priv,
                         struct iwl_notification_wait *wait_entry,
                         unsigned long timeout);