diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2013-02-05 03:08:35 -0500 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2013-02-11 05:54:27 -0500 |
commit | 8115efbdc82acc935b54f0a849eb834129ea1fd0 (patch) | |
tree | e1f125c030647f0c9ea2f63d0a7c6d0a12a64229 | |
parent | 456f6ddf9cfd876a60df259dbe4f3cb943e773b4 (diff) |
iwlwifi: mvm: fix the keyidx assignment
Fixes an issue that smatch pointed out:
1118
1119 key_flags = cpu_to_le16(keyconf->keyidx & STA_KEY_FLG_KEYID_MSK);
^^^^^^^^^^^^^^^
This is s8.
^^^^^^^^^^^^^^^^^^^^^
STA_KEY_FLG_KEYID_MSK is 0x300.
The result after the bitwise AND is always zero because 0xff & 0x300.
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | drivers/net/wireless/iwlwifi/mvm/sta.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/mvm/sta.c b/drivers/net/wireless/iwlwifi/mvm/sta.c index 69603c3b2b39..8f8b66ea07ee 100644 --- a/drivers/net/wireless/iwlwifi/mvm/sta.c +++ b/drivers/net/wireless/iwlwifi/mvm/sta.c | |||
@@ -1116,7 +1116,8 @@ int iwl_mvm_remove_sta_key(struct iwl_mvm *mvm, | |||
1116 | if (WARN_ON_ONCE(mvm_sta->vif != vif)) | 1116 | if (WARN_ON_ONCE(mvm_sta->vif != vif)) |
1117 | return -EINVAL; | 1117 | return -EINVAL; |
1118 | 1118 | ||
1119 | key_flags = cpu_to_le16(keyconf->keyidx & STA_KEY_FLG_KEYID_MSK); | 1119 | key_flags = cpu_to_le16((keyconf->keyidx << STA_KEY_FLG_KEYID_POS) & |
1120 | STA_KEY_FLG_KEYID_MSK); | ||
1120 | key_flags |= cpu_to_le16(STA_KEY_FLG_NO_ENC | STA_KEY_FLG_WEP_KEY_MAP); | 1121 | key_flags |= cpu_to_le16(STA_KEY_FLG_NO_ENC | STA_KEY_FLG_WEP_KEY_MAP); |
1121 | key_flags |= cpu_to_le16(STA_KEY_NOT_VALID); | 1122 | key_flags |= cpu_to_le16(STA_KEY_NOT_VALID); |
1122 | 1123 | ||