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 486a8d3a1f0dc514a4e7d1597468e2772706aff8..828416881d6f0cd6ce7636207a2ed22a430e642d 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 ee7c5ba9597135c4a65ff222f96b92e47190a353..435dd2d6c0ab1242520e501097d532ae585c2fea 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 b9871c4b3c18cd17584160072c7288a87a3d0e50..ba90aa47477771c2f87ac8c588c5ce37483f6d80 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);