wil6210: unify wmi_set_ie() error handling
authorVladimir Kondratiev <QCA_vkondrat@QCA.qualcomm.com>
Thu, 30 Jul 2015 10:52:00 +0000 (13:52 +0300)
committerKalle Valo <kvalo@qca.qualcomm.com>
Thu, 6 Aug 2015 06:43:24 +0000 (09:43 +0300)
When printing error message, provide string describing IE kind.
Derive it from IE type
This allows removing of error messages printing
in callers

Signed-off-by: Vladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/wil6210/cfg80211.c
drivers/net/wireless/ath/wil6210/wmi.c

index 8811174e51c3cdf642752a80189e835adc69a35e..20d07ef679e89d467170abae532819f36f283821 100644 (file)
@@ -336,12 +336,9 @@ static int wil_cfg80211_scan(struct wiphy *wiphy,
        else
                wil_dbg_misc(wil, "Scan has no IE's\n");
 
-       rc = wmi_set_ie(wil, WMI_FRAME_PROBE_REQ, request->ie_len,
-                       request->ie);
-       if (rc) {
-               wil_err(wil, "Aborting scan, set_ie failed: %d\n", rc);
+       rc = wmi_set_ie(wil, WMI_FRAME_PROBE_REQ, request->ie_len, request->ie);
+       if (rc)
                goto out;
-       }
 
        rc = wmi_send(wil, WMI_START_SCAN_CMDID, &cmd, sizeof(cmd.cmd) +
                        cmd.cmd.num_channels * sizeof(cmd.cmd.channel_list[0]));
@@ -462,10 +459,8 @@ static int wil_cfg80211_connect(struct wiphy *wiphy,
         * ies in FW.
         */
        rc = wmi_set_ie(wil, WMI_FRAME_ASSOC_REQ, sme->ie_len, sme->ie);
-       if (rc) {
-               wil_err(wil, "WMI_SET_APPIE_CMD failed\n");
+       if (rc)
                goto out;
-       }
 
        /* WMI_CONNECT_CMD */
        memset(&conn, 0, sizeof(conn));
@@ -748,27 +743,19 @@ static int _wil_cfg80211_set_ies(struct wiphy *wiphy,
 
        rc = wmi_set_ie(wil, WMI_FRAME_PROBE_RESP, bcon->proberesp_ies_len,
                        bcon->proberesp_ies);
-       if (rc) {
-               wil_err(wil, "set_ie(PROBE_RESP) failed\n");
+       if (rc)
                return rc;
-       }
 
        rc = wmi_set_ie(wil, WMI_FRAME_ASSOC_RESP, bcon->assocresp_ies_len,
                        bcon->assocresp_ies);
-       if (rc) {
-               wil_err(wil, "set_ie(ASSOC_RESP) failed\n");
-               return rc;
-       }
 #if 0 /* to use beacon IE's, remove this #if 0 */
-       rc = wmi_set_ie(wil, WMI_FRAME_BEACON, bcon->tail_len,
-                       bcon->tail);
-       if (rc) {
-               wil_err(wil, "set_ie(BEACON) failed\n");
+       if (rc)
                return rc;
-       }
+
+       rc = wmi_set_ie(wil, WMI_FRAME_BEACON, bcon->tail_len, bcon->tail);
 #endif
 
-       return 0;
+       return rc;
 }
 
 static int _wil_cfg80211_start_ap(struct wiphy *wiphy,
index fbcea838ccfa8c45b3ad646663fb45dc549ea056..b9cf9a68d565ed15031006d181d98bf724c73b7a 100644 (file)
@@ -1022,12 +1022,21 @@ int wmi_add_cipher_key(struct wil6210_priv *wil, u8 key_index,
 
 int wmi_set_ie(struct wil6210_priv *wil, u8 type, u16 ie_len, const void *ie)
 {
+       static const char *const names[] = {
+               [WMI_FRAME_BEACON]      = "BEACON",
+               [WMI_FRAME_PROBE_REQ]   = "PROBE_REQ",
+               [WMI_FRAME_PROBE_RESP]  = "WMI_FRAME_PROBE_RESP",
+               [WMI_FRAME_ASSOC_REQ]   = "WMI_FRAME_ASSOC_REQ",
+               [WMI_FRAME_ASSOC_RESP]  = "WMI_FRAME_ASSOC_RESP",
+       };
        int rc;
        u16 len = sizeof(struct wmi_set_appie_cmd) + ie_len;
        struct wmi_set_appie_cmd *cmd = kzalloc(len, GFP_KERNEL);
 
-       if (!cmd)
-               return -ENOMEM;
+       if (!cmd) {
+               rc = -ENOMEM;
+               goto out;
+       }
        if (!ie)
                ie_len = 0;
 
@@ -1037,6 +1046,12 @@ int wmi_set_ie(struct wil6210_priv *wil, u8 type, u16 ie_len, const void *ie)
        memcpy(cmd->ie_info, ie, ie_len);
        rc = wmi_send(wil, WMI_SET_APPIE_CMDID, cmd, len);
        kfree(cmd);
+out:
+       if (rc) {
+               const char *name = type < ARRAY_SIZE(names) ?
+                                  names[type] : "??";
+               wil_err(wil, "set_ie(%d %s) failed : %d\n", type, name, rc);
+       }
 
        return rc;
 }