aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/intel/iwlwifi
diff options
context:
space:
mode:
authorSara Sharon <sara.sharon@intel.com>2016-02-07 05:50:35 -0500
committerEmmanuel Grumbach <emmanuel.grumbach@intel.com>2016-02-27 14:59:51 -0500
commitdd4d3161d0f229031914f403721ced8cb64d4d52 (patch)
treee373bd245697289afc825204e6e81eb463ed91e7 /drivers/net/wireless/intel/iwlwifi
parent25c2b22caceedf015d5852e3abb46d2e9271a3bd (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.c5
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/fw.c2
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/ops.c2
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);
1497MVM_DEBUGFS_READ_WRITE_FILE_OPS(fw_dbg_conf, 8); 1497MVM_DEBUGFS_READ_WRITE_FILE_OPS(fw_dbg_conf, 8);
1498MVM_DEBUGFS_WRITE_FILE_OPS(fw_dbg_collect, 64); 1498MVM_DEBUGFS_WRITE_FILE_OPS(fw_dbg_collect, 64);
1499MVM_DEBUGFS_WRITE_FILE_OPS(cont_recording, 8); 1499MVM_DEBUGFS_WRITE_FILE_OPS(cont_recording, 8);
1500MVM_DEBUGFS_WRITE_FILE_OPS(indirection_tbl, 16); 1500MVM_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
1503MVM_DEBUGFS_READ_WRITE_FILE_OPS(bcast_filters, 256); 1504MVM_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