iwlwifi: remove command callback return value
authorJohannes Berg <johannes@sipsolutions.net>
Fri, 24 Jul 2009 18:13:06 +0000 (11:13 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Mon, 27 Jul 2009 19:24:22 +0000 (15:24 -0400)
No existing callbacks use anything other than the return
value 1, which means that the caller should free the
reply skb, so it seems safer in terms of not introducing
memory leaks to simply remove the return value and let
the caller always free the skb.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl-3945-led.c
drivers/net/wireless/iwlwifi/iwl-core.h
drivers/net/wireless/iwlwifi/iwl-dev.h
drivers/net/wireless/iwlwifi/iwl-hcmd.c
drivers/net/wireless/iwlwifi/iwl-sta.c
drivers/net/wireless/iwlwifi/iwl-tx.c

index b37938217f53070d87f4b9a787d96cb9c8f8a772..8c29ded7d02c5408c26ae12585c46bf8bd7967c7 100644 (file)
@@ -79,11 +79,10 @@ static const struct {
 #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)
index 4156debec39c133f4a1c5d3385f6d2adf8a8b22c..febcf76e1d41bc184f1e82dd7197328d9acc68b3 100644 (file)
@@ -446,9 +446,9 @@ int __must_check iwl_send_cmd_pdu(struct iwl_priv *priv, u8 id,
                                  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);
 
index ce765f79275ab1563b107c357a855261dc078b35..3ca188a9592623c356fd88ac0dab7be3d1986182 100644 (file)
@@ -163,9 +163,9 @@ struct iwl_cmd_meta {
         * 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. */
@@ -383,9 +383,9 @@ struct iwl_device_cmd {
 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;
index d8a3eac8ceb7f7769840552407d6e1658e4d6e78..b82ad15d5189a684e61f9eb9ddcdbcdde0268e7e 100644 (file)
@@ -103,23 +103,23 @@ EXPORT_SYMBOL(get_cmd_string);
 
 #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
@@ -128,15 +128,12 @@ static int iwl_generic_cmd_callback(struct iwl_priv *priv,
        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)
@@ -275,9 +272,9 @@ EXPORT_SYMBOL(iwl_send_cmd_pdu);
 
 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,
index 1571ace05ddede80519c661f9fb108eff83c2e74..79ea5cc2c89aa4438238cc41815159ce6bc26c28 100644 (file)
@@ -97,9 +97,9 @@ static void iwl_sta_ucode_activate(struct iwl_priv *priv, u8 sta_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 =
@@ -108,14 +108,14 @@ static int iwl_add_sta_callback(struct iwl_priv *priv,
 
        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) {
@@ -127,9 +127,6 @@ static int iwl_add_sta_callback(struct iwl_priv *priv,
                             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,
@@ -325,9 +322,9 @@ static void iwl_sta_ucode_deactivate(struct iwl_priv *priv, const char *addr)
        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 =
@@ -336,14 +333,14 @@ static int iwl_remove_sta_callback(struct iwl_priv *priv,
 
        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) {
@@ -354,9 +351,6 @@ static int iwl_remove_sta_callback(struct iwl_priv *priv,
                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,
index 51ddbab63c23fe944fcb18494855f4edf8df651f..e1558db97ec4f9d03d44092f995a874799679de2 100644 (file)
@@ -1144,8 +1144,8 @@ void iwl_tx_cmd_complete(struct iwl_priv *priv, struct iwl_rx_mem_buffer *rxb)
        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);