diff options
author | Sara Sharon <sara.sharon@intel.com> | 2016-02-07 05:50:35 -0500 |
---|---|---|
committer | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2016-02-27 14:59:51 -0500 |
commit | dd4d3161d0f229031914f403721ced8cb64d4d52 (patch) | |
tree | e373bd245697289afc825204e6e81eb463ed91e7 /drivers/net/wireless/intel/iwlwifi | |
parent | 25c2b22caceedf015d5852e3abb46d2e9271a3bd (diff) |
iwlwifi: mvm: fix RSS key sizing
The initialization and copying of the RSS secret key
should not use ARRAY_SIZE as we need to initialize a
dword array, and not a byte array.
Fix also the hook maximum write size to allow writing
a longer table - up to full indirection table size.
Fixes: 43413a975d06("iwlwifi: mvm: support rss queues configuration command")
Signed-off-by: Sara Sharon <sara.sharon@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi')
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | 5 | ||||
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/fw.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 2 |
3 files changed, 5 insertions, 4 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c index c529e5355803..54d0d7d2d0b1 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c | |||
@@ -976,7 +976,7 @@ static ssize_t iwl_dbgfs_indirection_tbl_write(struct iwl_mvm *mvm, | |||
976 | memcpy(&cmd.indirection_table[i * nbytes], cmd.indirection_table, | 976 | memcpy(&cmd.indirection_table[i * nbytes], cmd.indirection_table, |
977 | ARRAY_SIZE(cmd.indirection_table) % nbytes); | 977 | ARRAY_SIZE(cmd.indirection_table) % nbytes); |
978 | 978 | ||
979 | memcpy(cmd.secret_key, mvm->secret_key, ARRAY_SIZE(cmd.secret_key)); | 979 | memcpy(cmd.secret_key, mvm->secret_key, sizeof(cmd.secret_key)); |
980 | 980 | ||
981 | mutex_lock(&mvm->mutex); | 981 | mutex_lock(&mvm->mutex); |
982 | ret = iwl_mvm_send_cmd_pdu(mvm, RSS_CONFIG_CMD, 0, sizeof(cmd), &cmd); | 982 | ret = iwl_mvm_send_cmd_pdu(mvm, RSS_CONFIG_CMD, 0, sizeof(cmd), &cmd); |
@@ -1497,7 +1497,8 @@ MVM_DEBUGFS_READ_WRITE_FILE_OPS(d0i3_refs, 8); | |||
1497 | MVM_DEBUGFS_READ_WRITE_FILE_OPS(fw_dbg_conf, 8); | 1497 | MVM_DEBUGFS_READ_WRITE_FILE_OPS(fw_dbg_conf, 8); |
1498 | MVM_DEBUGFS_WRITE_FILE_OPS(fw_dbg_collect, 64); | 1498 | MVM_DEBUGFS_WRITE_FILE_OPS(fw_dbg_collect, 64); |
1499 | MVM_DEBUGFS_WRITE_FILE_OPS(cont_recording, 8); | 1499 | MVM_DEBUGFS_WRITE_FILE_OPS(cont_recording, 8); |
1500 | MVM_DEBUGFS_WRITE_FILE_OPS(indirection_tbl, 16); | 1500 | MVM_DEBUGFS_WRITE_FILE_OPS(indirection_tbl, |
1501 | (IWL_RSS_INDIRECTION_TABLE_SIZE * 2)); | ||
1501 | 1502 | ||
1502 | #ifdef CONFIG_IWLWIFI_BCAST_FILTERING | 1503 | #ifdef CONFIG_IWLWIFI_BCAST_FILTERING |
1503 | MVM_DEBUGFS_READ_WRITE_FILE_OPS(bcast_filters, 256); | 1504 | MVM_DEBUGFS_READ_WRITE_FILE_OPS(bcast_filters, 256); |
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c index 3e596e4b3999..05475a2bff90 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/fw.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/fw.c | |||
@@ -121,7 +121,7 @@ static int iwl_send_rss_cfg_cmd(struct iwl_mvm *mvm) | |||
121 | 121 | ||
122 | for (i = 0; i < ARRAY_SIZE(cmd.indirection_table); i++) | 122 | for (i = 0; i < ARRAY_SIZE(cmd.indirection_table); i++) |
123 | cmd.indirection_table[i] = i % mvm->trans->num_rx_queues; | 123 | cmd.indirection_table[i] = i % mvm->trans->num_rx_queues; |
124 | memcpy(cmd.secret_key, mvm->secret_key, ARRAY_SIZE(cmd.secret_key)); | 124 | memcpy(cmd.secret_key, mvm->secret_key, sizeof(cmd.secret_key)); |
125 | 125 | ||
126 | return iwl_mvm_send_cmd_pdu(mvm, RSS_CONFIG_CMD, 0, sizeof(cmd), &cmd); | 126 | return iwl_mvm_send_cmd_pdu(mvm, RSS_CONFIG_CMD, 0, sizeof(cmd), &cmd); |
127 | } | 127 | } |
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c index 3661a9db5a0b..c5b6e8671169 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c | |||
@@ -661,7 +661,7 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg, | |||
661 | iwl_mvm_tof_init(mvm); | 661 | iwl_mvm_tof_init(mvm); |
662 | 662 | ||
663 | /* init RSS hash key */ | 663 | /* init RSS hash key */ |
664 | get_random_bytes(mvm->secret_key, ARRAY_SIZE(mvm->secret_key)); | 664 | get_random_bytes(mvm->secret_key, sizeof(mvm->secret_key)); |
665 | 665 | ||
666 | return op_mode; | 666 | return op_mode; |
667 | 667 | ||