net: ena: rss: fix failure to get indirection table
authorSameeh Jubran <sameehj@amazon.com>
Tue, 11 Feb 2020 15:17:45 +0000 (15:17 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 12 Feb 2020 01:08:30 +0000 (17:08 -0800)
On old hardware, getting / setting the hash function is not supported while
gettting / setting the indirection table is.

This commit enables us to still show the indirection table on older
hardwares by setting the hash function and key to NULL.

Fixes: 1738cd3ed342 ("net: ena: Add a driver for Amazon Elastic Network Adapters (ENA)")
Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/amazon/ena/ena_ethtool.c

index 08273eb..d44ae4f 100644 (file)
@@ -648,7 +648,21 @@ static int ena_get_rxfh(struct net_device *netdev, u32 *indir, u8 *key,
        if (rc)
                return rc;
 
+       /* We call this function in order to check if the device
+        * supports getting/setting the hash function.
+        */
        rc = ena_com_get_hash_function(adapter->ena_dev, &ena_func, key);
+
+       if (rc) {
+               if (rc == -EOPNOTSUPP) {
+                       key = NULL;
+                       hfunc = NULL;
+                       rc = 0;
+               }
+
+               return rc;
+       }
+
        if (rc)
                return rc;