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;
 
        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,
 
                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;
 
                                         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);