Skip to content

Commit

Permalink
mwifiex: parsing aid while receiving association response
Browse files Browse the repository at this point in the history
cfg80211 would complain about invalid AID in during TDLS setup.
This was happening because we use same AID value as provide by AP
while forming setup messages.
Parse AID from Association response and filter BIT14 and BIT15
of AID to get valid AID.

Signed-off-by: Xinming Hu <huxm@marvell.com>
Signed-off-by: Avinash Patil <patila@marvell.com>
Signed-off-by: Cathy Luo <cluo@marvell.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
  • Loading branch information
Xinming Hu authored and Kalle Valo committed May 9, 2015
1 parent 4e0ff94 commit 4aff53e
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion drivers/net/wireless/mwifiex/join.c
Original file line number Diff line number Diff line change
Expand Up @@ -621,18 +621,28 @@ int mwifiex_ret_802_11_associate(struct mwifiex_private *priv,
struct ieee_types_assoc_rsp *assoc_rsp;
struct mwifiex_bssdescriptor *bss_desc;
bool enable_data = true;
u16 cap_info, status_code;
u16 cap_info, status_code, aid;

assoc_rsp = (struct ieee_types_assoc_rsp *) &resp->params;

cap_info = le16_to_cpu(assoc_rsp->cap_info_bitmap);
status_code = le16_to_cpu(assoc_rsp->status_code);
aid = le16_to_cpu(assoc_rsp->a_id);

if ((aid & (BIT(15) | BIT(14))) != (BIT(15) | BIT(14)))
dev_err(priv->adapter->dev,
"invalid AID value 0x%x; bits 15:14 not set\n",
aid);

aid &= ~(BIT(15) | BIT(14));

priv->assoc_rsp_size = min(le16_to_cpu(resp->size) - S_DS_GEN,
sizeof(priv->assoc_rsp_buf));

memcpy(priv->assoc_rsp_buf, &resp->params, priv->assoc_rsp_size);

assoc_rsp->a_id = cpu_to_le16(aid);

if (status_code) {
priv->adapter->dbg.num_cmd_assoc_failure++;
dev_err(priv->adapter->dev,
Expand Down

0 comments on commit 4aff53e

Please sign in to comment.