rt2800: do not nullify initialization vector data
If we restart hw we should keep existing IV (initialization vector) otherwise HW encryption will be broken after restart. Also fix some coding style issues on the way. Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
parent
09db3b0006
commit
710e6cc159
1 changed files with 4 additions and 5 deletions
|
@ -1647,14 +1647,15 @@ static void rt2800_config_wcid_attr_cipher(struct rt2x00_dev *rt2x00dev,
|
||||||
|
|
||||||
offset = MAC_IVEIV_ENTRY(key->hw_key_idx);
|
offset = MAC_IVEIV_ENTRY(key->hw_key_idx);
|
||||||
|
|
||||||
memset(&iveiv_entry, 0, sizeof(iveiv_entry));
|
rt2800_register_multiread(rt2x00dev, offset,
|
||||||
|
&iveiv_entry, sizeof(iveiv_entry));
|
||||||
if ((crypto->cipher == CIPHER_TKIP) ||
|
if ((crypto->cipher == CIPHER_TKIP) ||
|
||||||
(crypto->cipher == CIPHER_TKIP_NO_MIC) ||
|
(crypto->cipher == CIPHER_TKIP_NO_MIC) ||
|
||||||
(crypto->cipher == CIPHER_AES))
|
(crypto->cipher == CIPHER_AES))
|
||||||
iveiv_entry.iv[3] |= 0x20;
|
iveiv_entry.iv[3] |= 0x20;
|
||||||
iveiv_entry.iv[3] |= key->keyidx << 6;
|
iveiv_entry.iv[3] |= key->keyidx << 6;
|
||||||
rt2800_register_multiwrite(rt2x00dev, offset,
|
rt2800_register_multiwrite(rt2x00dev, offset,
|
||||||
&iveiv_entry, sizeof(iveiv_entry));
|
&iveiv_entry, sizeof(iveiv_entry));
|
||||||
}
|
}
|
||||||
|
|
||||||
int rt2800_config_shared_key(struct rt2x00_dev *rt2x00dev,
|
int rt2800_config_shared_key(struct rt2x00_dev *rt2x00dev,
|
||||||
|
@ -6079,13 +6080,11 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
|
||||||
* ASIC will keep garbage value after boot, clear encryption keys.
|
* ASIC will keep garbage value after boot, clear encryption keys.
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < 4; i++)
|
for (i = 0; i < 4; i++)
|
||||||
rt2800_register_write(rt2x00dev,
|
rt2800_register_write(rt2x00dev, SHARED_KEY_MODE_ENTRY(i), 0);
|
||||||
SHARED_KEY_MODE_ENTRY(i), 0);
|
|
||||||
|
|
||||||
for (i = 0; i < 256; i++) {
|
for (i = 0; i < 256; i++) {
|
||||||
rt2800_config_wcid(rt2x00dev, NULL, i);
|
rt2800_config_wcid(rt2x00dev, NULL, i);
|
||||||
rt2800_delete_wcid_attr(rt2x00dev, i);
|
rt2800_delete_wcid_attr(rt2x00dev, i);
|
||||||
rt2800_register_write(rt2x00dev, MAC_IVEIV_ENTRY(i), 0);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Reference in a new issue