#define IWL_MAX_BLINK_TBL (ARRAY_SIZE(blink_tbl) - 1) /*Exclude Solid on*/
 #define IWL_SOLID_BLINK_IDX (ARRAY_SIZE(blink_tbl) - 1)
 
-static int iwl3945_led_cmd_callback(struct iwl_priv *priv,
-                                   struct iwl_device_cmd *cmd,
-                                   struct sk_buff *skb)
+static void iwl3945_led_cmd_callback(struct iwl_priv *priv,
+                                    struct iwl_device_cmd *cmd,
+                                    struct sk_buff *skb)
 {
-       return 1;
 }
 
 static inline int iwl3945_brightness_to_idx(enum led_brightness brightness)
 
                                  u16 len, const void *data);
 int iwl_send_cmd_pdu_async(struct iwl_priv *priv, u8 id, u16 len,
                           const void *data,
-                          int (*callback)(struct iwl_priv *priv,
-                                          struct iwl_device_cmd *cmd,
-                                          struct sk_buff *skb));
+                          void (*callback)(struct iwl_priv *priv,
+                                           struct iwl_device_cmd *cmd,
+                                           struct sk_buff *skb));
 
 int iwl_enqueue_hcmd(struct iwl_priv *priv, struct iwl_host_cmd *cmd);
 
 
         * invoked for SYNC commands, if it were and its result passed
         * through it would be simpler...)
         */
-       int (*callback)(struct iwl_priv *priv,
-                       struct iwl_device_cmd *cmd,
-                       struct sk_buff *skb);
+       void (*callback)(struct iwl_priv *priv,
+                        struct iwl_device_cmd *cmd,
+                        struct sk_buff *skb);
 
        /* The CMD_SIZE_HUGE flag bit indicates that the command
         * structure is stored at the end of the shared queue memory. */
 struct iwl_host_cmd {
        const void *data;
        struct sk_buff *reply_skb;
-       int (*callback)(struct iwl_priv *priv,
-                       struct iwl_device_cmd *cmd,
-                       struct sk_buff *skb);
+       void (*callback)(struct iwl_priv *priv,
+                        struct iwl_device_cmd *cmd,
+                        struct sk_buff *skb);
        u32 flags;
        u16 len;
        u8 id;
 
 
 #define HOST_COMPLETE_TIMEOUT (HZ / 2)
 
-static int iwl_generic_cmd_callback(struct iwl_priv *priv,
-                                   struct iwl_device_cmd *cmd,
-                                   struct sk_buff *skb)
+static void iwl_generic_cmd_callback(struct iwl_priv *priv,
+                                    struct iwl_device_cmd *cmd,
+                                    struct sk_buff *skb)
 {
        struct iwl_rx_packet *pkt = NULL;
 
        if (!skb) {
                IWL_ERR(priv, "Error: Response NULL in %s.\n",
                                get_cmd_string(cmd->hdr.cmd));
-               return 1;
+               return;
        }
 
        pkt = (struct iwl_rx_packet *)skb->data;
        if (pkt->hdr.flags & IWL_CMD_FAILED_MSK) {
                IWL_ERR(priv, "Bad return from %s (0x%08X)\n",
                        get_cmd_string(cmd->hdr.cmd), pkt->hdr.flags);
-               return 1;
+               return;
        }
 
 #ifdef CONFIG_IWLWIFI_DEBUG
        case SENSITIVITY_CMD:
                IWL_DEBUG_HC_DUMP(priv, "back from %s (0x%08X)\n",
                                get_cmd_string(cmd->hdr.cmd), pkt->hdr.flags);
-                               break;
+               break;
        default:
                IWL_DEBUG_HC(priv, "back from %s (0x%08X)\n",
                                get_cmd_string(cmd->hdr.cmd), pkt->hdr.flags);
        }
 #endif
-
-       /* Let iwl_tx_complete free the response skb */
-       return 1;
 }
 
 static int iwl_send_cmd_async(struct iwl_priv *priv, struct iwl_host_cmd *cmd)
 
 int iwl_send_cmd_pdu_async(struct iwl_priv *priv,
                           u8 id, u16 len, const void *data,
-                          int (*callback)(struct iwl_priv *priv,
-                                          struct iwl_device_cmd *cmd,
-                                          struct sk_buff *skb))
+                          void (*callback)(struct iwl_priv *priv,
+                                           struct iwl_device_cmd *cmd,
+                                           struct sk_buff *skb))
 {
        struct iwl_host_cmd cmd = {
                .id = id,
 
        spin_unlock_irqrestore(&priv->sta_lock, flags);
 }
 
-static int iwl_add_sta_callback(struct iwl_priv *priv,
-                               struct iwl_device_cmd *cmd,
-                               struct sk_buff *skb)
+static void iwl_add_sta_callback(struct iwl_priv *priv,
+                                struct iwl_device_cmd *cmd,
+                                struct sk_buff *skb)
 {
        struct iwl_rx_packet *res = NULL;
        struct iwl_addsta_cmd *addsta =
 
        if (!skb) {
                IWL_ERR(priv, "Error: Response NULL in REPLY_ADD_STA.\n");
-               return 1;
+               return;
        }
 
        res = (struct iwl_rx_packet *)skb->data;
        if (res->hdr.flags & IWL_CMD_FAILED_MSK) {
                IWL_ERR(priv, "Bad return from REPLY_ADD_STA (0x%08X)\n",
                          res->hdr.flags);
-               return 1;
+               return;
        }
 
        switch (res->u.add_sta.status) {
                             res->u.add_sta.status);
                break;
        }
-
-       /* We didn't cache the SKB; let the caller free it */
-       return 1;
 }
 
 int iwl_send_add_sta(struct iwl_priv *priv,
        spin_unlock_irqrestore(&priv->sta_lock, flags);
 }
 
-static int iwl_remove_sta_callback(struct iwl_priv *priv,
-                                  struct iwl_device_cmd *cmd,
-                                  struct sk_buff *skb)
+static void iwl_remove_sta_callback(struct iwl_priv *priv,
+                                   struct iwl_device_cmd *cmd,
+                                   struct sk_buff *skb)
 {
        struct iwl_rx_packet *res = NULL;
        struct iwl_rem_sta_cmd *rm_sta =
 
        if (!skb) {
                IWL_ERR(priv, "Error: Response NULL in REPLY_REMOVE_STA.\n");
-               return 1;
+               return;
        }
 
        res = (struct iwl_rx_packet *)skb->data;
        if (res->hdr.flags & IWL_CMD_FAILED_MSK) {
                IWL_ERR(priv, "Bad return from REPLY_REMOVE_STA (0x%08X)\n",
                res->hdr.flags);
-               return 1;
+               return;
        }
 
        switch (res->u.rem_sta.status) {
                IWL_ERR(priv, "REPLY_REMOVE_STA failed\n");
                break;
        }
-
-       /* We didn't cache the SKB; let the caller free it */
-       return 1;
 }
 
 static int iwl_send_remove_station(struct iwl_priv *priv, const u8 *addr,
 
        if (meta->flags & CMD_WANT_SKB) {
                meta->source->reply_skb = rxb->skb;
                rxb->skb = NULL;
-       } else if (meta->callback && !meta->callback(priv, cmd, rxb->skb))
-               rxb->skb = NULL;
+       } else if (meta->callback)
+               meta->callback(priv, cmd, rxb->skb);
 
        iwl_hcmd_queue_reclaim(priv, txq_id, index, cmd_index);