提交 5421bf0c 编写于 作者: V Vladimir Kondratiev 提交者: Kalle Valo

wil6210: unify wmi_set_ie() error handling

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: NVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: NKalle Valo <kvalo@qca.qualcomm.com>
上级 cab5abbf
...@@ -336,12 +336,9 @@ static int wil_cfg80211_scan(struct wiphy *wiphy, ...@@ -336,12 +336,9 @@ static int wil_cfg80211_scan(struct wiphy *wiphy,
else else
wil_dbg_misc(wil, "Scan has no IE's\n"); wil_dbg_misc(wil, "Scan has no IE's\n");
rc = wmi_set_ie(wil, WMI_FRAME_PROBE_REQ, request->ie_len, rc = wmi_set_ie(wil, WMI_FRAME_PROBE_REQ, request->ie_len, request->ie);
request->ie); if (rc)
if (rc) {
wil_err(wil, "Aborting scan, set_ie failed: %d\n", rc);
goto out; goto out;
}
rc = wmi_send(wil, WMI_START_SCAN_CMDID, &cmd, sizeof(cmd.cmd) + rc = wmi_send(wil, WMI_START_SCAN_CMDID, &cmd, sizeof(cmd.cmd) +
cmd.cmd.num_channels * sizeof(cmd.cmd.channel_list[0])); cmd.cmd.num_channels * sizeof(cmd.cmd.channel_list[0]));
...@@ -462,10 +459,8 @@ static int wil_cfg80211_connect(struct wiphy *wiphy, ...@@ -462,10 +459,8 @@ static int wil_cfg80211_connect(struct wiphy *wiphy,
* ies in FW. * ies in FW.
*/ */
rc = wmi_set_ie(wil, WMI_FRAME_ASSOC_REQ, sme->ie_len, sme->ie); rc = wmi_set_ie(wil, WMI_FRAME_ASSOC_REQ, sme->ie_len, sme->ie);
if (rc) { if (rc)
wil_err(wil, "WMI_SET_APPIE_CMD failed\n");
goto out; goto out;
}
/* WMI_CONNECT_CMD */ /* WMI_CONNECT_CMD */
memset(&conn, 0, sizeof(conn)); memset(&conn, 0, sizeof(conn));
...@@ -748,27 +743,19 @@ static int _wil_cfg80211_set_ies(struct wiphy *wiphy, ...@@ -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, rc = wmi_set_ie(wil, WMI_FRAME_PROBE_RESP, bcon->proberesp_ies_len,
bcon->proberesp_ies); bcon->proberesp_ies);
if (rc) { if (rc)
wil_err(wil, "set_ie(PROBE_RESP) failed\n");
return rc; return rc;
}
rc = wmi_set_ie(wil, WMI_FRAME_ASSOC_RESP, bcon->assocresp_ies_len, rc = wmi_set_ie(wil, WMI_FRAME_ASSOC_RESP, bcon->assocresp_ies_len,
bcon->assocresp_ies); 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 */ #if 0 /* to use beacon IE's, remove this #if 0 */
rc = wmi_set_ie(wil, WMI_FRAME_BEACON, bcon->tail_len, if (rc)
bcon->tail);
if (rc) {
wil_err(wil, "set_ie(BEACON) failed\n");
return rc; return rc;
}
rc = wmi_set_ie(wil, WMI_FRAME_BEACON, bcon->tail_len, bcon->tail);
#endif #endif
return 0; return rc;
} }
static int _wil_cfg80211_start_ap(struct wiphy *wiphy, static int _wil_cfg80211_start_ap(struct wiphy *wiphy,
......
...@@ -1022,12 +1022,21 @@ int wmi_add_cipher_key(struct wil6210_priv *wil, u8 key_index, ...@@ -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) 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; int rc;
u16 len = sizeof(struct wmi_set_appie_cmd) + ie_len; u16 len = sizeof(struct wmi_set_appie_cmd) + ie_len;
struct wmi_set_appie_cmd *cmd = kzalloc(len, GFP_KERNEL); struct wmi_set_appie_cmd *cmd = kzalloc(len, GFP_KERNEL);
if (!cmd) if (!cmd) {
return -ENOMEM; rc = -ENOMEM;
goto out;
}
if (!ie) if (!ie)
ie_len = 0; ie_len = 0;
...@@ -1037,6 +1046,12 @@ int wmi_set_ie(struct wil6210_priv *wil, u8 type, u16 ie_len, const void *ie) ...@@ -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); memcpy(cmd->ie_info, ie, ie_len);
rc = wmi_send(wil, WMI_SET_APPIE_CMDID, cmd, len); rc = wmi_send(wil, WMI_SET_APPIE_CMDID, cmd, len);
kfree(cmd); 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; return rc;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册