net/ena/base: do not use hardcoded RSS key buffer size
authorMichal Krawczyk <mk@semihalf.com>
Thu, 17 Sep 2020 05:30:25 +0000 (07:30 +0200)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 30 Sep 2020 17:19:09 +0000 (19:19 +0200)
It's well defined how the RSS key buffer looks from the device
perspective, so the constant value should be used instead of magic
number. Also it doesn't has to be calculated dynamically.

Signed-off-by: Michal Krawczyk <mk@semihalf.com>
Reviewed-by: Igor Chauskin <igorch@amazon.com>
Reviewed-by: Guy Tzalik <gtzalik@amazon.com>
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
drivers/net/ena/base/ena_com.c
drivers/net/ena/base/ena_defs/ena_admin_defs.h

index bf1de09..ea7d678 100644 (file)
@@ -1073,11 +1073,10 @@ static void ena_com_hash_key_fill_default_key(struct ena_com_dev *ena_dev)
                (ena_dev->rss).hash_key;
 
        ENA_RSS_FILL_KEY(&hash_key->key, sizeof(hash_key->key));
-       /* The key is stored in the device in uint32_t array
-        * as well as the API requires the key to be passed in this
-        * format. Thus the size of our array should be divided by 4
+       /* The key buffer is stored in the device in an array of
+        * uint32 elements.
         */
-       hash_key->keys_num = sizeof(hash_key->key) / sizeof(uint32_t);
+       hash_key->keys_num = ENA_ADMIN_RSS_KEY_PARTS;
 }
 
 static int ena_com_hash_key_allocate(struct ena_com_dev *ena_dev)
index be1747c..9cea1c3 100644 (file)
@@ -9,6 +9,8 @@
 #define ENA_ADMIN_EXTRA_PROPERTIES_STRING_LEN 32
 #define ENA_ADMIN_EXTRA_PROPERTIES_COUNT     32
 
+#define ENA_ADMIN_RSS_KEY_PARTS              10
+
 enum ena_admin_aq_opcode {
        ENA_ADMIN_CREATE_SQ                         = 1,
        ENA_ADMIN_DESTROY_SQ                        = 2,
@@ -732,7 +734,7 @@ struct ena_admin_feature_rss_flow_hash_control {
 
        uint32_t reserved;
 
-       uint32_t key[10];
+       uint32_t key[ENA_ADMIN_RSS_KEY_PARTS];
 };
 
 struct ena_admin_feature_rss_flow_hash_function {