Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ice: Add 52 byte RSS hash key support

Add support to set 52 byte RSS hash key.

Signed-off-by: Paul Greenwalt <paul.greenwalt@intel.com>
Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>

authored by

Paul Greenwalt and committed by
Jeff Kirsher
b4b418b3 0c2561c8

+8 -7
+3
drivers/net/ethernet/intel/ice/ice_adminq_cmd.h
··· 1291 1291 1292 1292 #define ICE_AQC_GET_SET_RSS_KEY_DATA_RSS_KEY_SIZE 0x28 1293 1293 #define ICE_AQC_GET_SET_RSS_KEY_DATA_HASH_KEY_SIZE 0xC 1294 + #define ICE_GET_SET_RSS_KEY_EXTEND_KEY_SIZE \ 1295 + (ICE_AQC_GET_SET_RSS_KEY_DATA_RSS_KEY_SIZE + \ 1296 + ICE_AQC_GET_SET_RSS_KEY_DATA_HASH_KEY_SIZE) 1294 1297 1295 1298 struct ice_aqc_get_set_rss_keys { 1296 1299 u8 standard_rss_key[ICE_AQC_GET_SET_RSS_KEY_DATA_RSS_KEY_SIZE];
+5 -7
drivers/net/ethernet/intel/ice/ice_lib.c
··· 1394 1394 */ 1395 1395 static int ice_vsi_cfg_rss_lut_key(struct ice_vsi *vsi) 1396 1396 { 1397 - u8 seed[ICE_AQC_GET_SET_RSS_KEY_DATA_RSS_KEY_SIZE]; 1398 1397 struct ice_aqc_get_set_rss_keys *key; 1399 1398 struct ice_pf *pf = vsi->back; 1400 1399 enum ice_status status; ··· 1428 1429 } 1429 1430 1430 1431 if (vsi->rss_hkey_user) 1431 - memcpy(seed, vsi->rss_hkey_user, 1432 - ICE_AQC_GET_SET_RSS_KEY_DATA_RSS_KEY_SIZE); 1432 + memcpy(key, 1433 + (struct ice_aqc_get_set_rss_keys *)vsi->rss_hkey_user, 1434 + ICE_GET_SET_RSS_KEY_EXTEND_KEY_SIZE); 1433 1435 else 1434 - netdev_rss_key_fill((void *)seed, 1435 - ICE_AQC_GET_SET_RSS_KEY_DATA_RSS_KEY_SIZE); 1436 - memcpy(&key->standard_rss_key, seed, 1437 - ICE_AQC_GET_SET_RSS_KEY_DATA_RSS_KEY_SIZE); 1436 + netdev_rss_key_fill((void *)key, 1437 + ICE_GET_SET_RSS_KEY_EXTEND_KEY_SIZE); 1438 1438 1439 1439 status = ice_aq_set_rss_key(&pf->hw, vsi->idx, key); 1440 1440