summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwifiex
diff options
context:
space:
mode:
authorAmitkumar Karwar <akarwar@marvell.com>2014-08-19 08:24:24 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-08-28 14:41:56 -0400
commit2618d4fb0fb8e28d81f4f922727225470e31e717 (patch)
treeeb230e72c1b39dc52c52b2415f6959099d8b496f /drivers/net/wireless/mwifiex
parentba1fa3cd615976ba5241060ceb2ab0c79c9b2605 (diff)
downloadlinux-2618d4fb0fb8e28d81f4f922727225470e31e717.tar.gz
linux-2618d4fb0fb8e28d81f4f922727225470e31e717.tar.bz2
linux-2618d4fb0fb8e28d81f4f922727225470e31e717.zip
mwifiex: fix left_len calculation issue
While updating 'left_len' in each iteration, we should subtract last TLV length not the accumulated length of TLVs parsed till now. This bug in parsing logic is exposed by newer firmware which adds two TLVs in GET_HW_SPEC command response. Earlier firmwares used to add only one TLV. Signed-off-by: Amitkumar Karwar <akarwar@marvell.com> Signed-off-by: Avinash Patil <patila@marvell.com> Signed-off-by: Cathy Luo <cluo@marvell.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/mwifiex')
-rw-r--r--drivers/net/wireless/mwifiex/cmdevt.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/mwifiex/cmdevt.c b/drivers/net/wireless/mwifiex/cmdevt.c
index baf0aab63c04..0c212394dc1f 100644
--- a/drivers/net/wireless/mwifiex/cmdevt.c
+++ b/drivers/net/wireless/mwifiex/cmdevt.c
@@ -1567,7 +1567,8 @@ int mwifiex_ret_get_hw_spec(struct mwifiex_private *priv,
}
parsed_len += le16_to_cpu(tlv->len) +
sizeof(struct mwifiex_ie_types_header);
- left_len -= parsed_len;
+ left_len -= le16_to_cpu(tlv->len) +
+ sizeof(struct mwifiex_ie_types_header);
}
}