net: ena: cosmetic: extract code to ena_indirection_table_set()
authorArthur Kiyanovski <akiyano@amazon.com>
Sun, 3 May 2020 09:52:21 +0000 (09:52 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 3 May 2020 22:59:30 +0000 (15:59 -0700)
Extract code to ena_indirection_table_set() to make
the code cleaner.

Signed-off-by: Sameeh Jubran <sameehj@amazon.com>
Signed-off-by: Arthur Kiyanovski <akiyano@amazon.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/amazon/ena/ena_ethtool.c

index 74725d6..830d371 100644 (file)
@@ -636,6 +636,32 @@ static u32 ena_get_rxfh_key_size(struct net_device *netdev)
        return ENA_HASH_KEY_SIZE;
 }
 
+static int ena_indirection_table_set(struct ena_adapter *adapter,
+                                    const u32 *indir)
+{
+       struct ena_com_dev *ena_dev = adapter->ena_dev;
+       int i, rc;
+
+       for (i = 0; i < ENA_RX_RSS_TABLE_SIZE; i++) {
+               rc = ena_com_indirect_table_fill_entry(ena_dev,
+                                                      i,
+                                                      ENA_IO_RXQ_IDX(indir[i]));
+               if (unlikely(rc)) {
+                       netif_err(adapter, drv, adapter->netdev,
+                                 "Cannot fill indirect table (index is too large)\n");
+                       return rc;
+               }
+       }
+
+       rc = ena_com_indirect_table_set(ena_dev);
+       if (rc) {
+               netif_err(adapter, drv, adapter->netdev,
+                         "Cannot set indirect table\n");
+               return rc == -EPERM ? -EOPNOTSUPP : rc;
+       }
+       return rc;
+}
+
 static int ena_indirection_table_get(struct ena_adapter *adapter, u32 *indir)
 {
        struct ena_com_dev *ena_dev = adapter->ena_dev;
@@ -710,26 +736,12 @@ static int ena_set_rxfh(struct net_device *netdev, const u32 *indir,
        struct ena_adapter *adapter = netdev_priv(netdev);
        struct ena_com_dev *ena_dev = adapter->ena_dev;
        enum ena_admin_hash_functions func = 0;
-       int rc, i;
+       int rc;
 
        if (indir) {
-               for (i = 0; i < ENA_RX_RSS_TABLE_SIZE; i++) {
-                       rc = ena_com_indirect_table_fill_entry(ena_dev,
-                                                              i,
-                                                              ENA_IO_RXQ_IDX(indir[i]));
-                       if (unlikely(rc)) {
-                               netif_err(adapter, drv, netdev,
-                                         "Cannot fill indirect table (index is too large)\n");
-                               return rc;
-                       }
-               }
-
-               rc = ena_com_indirect_table_set(ena_dev);
-               if (rc) {
-                       netif_err(adapter, drv, netdev,
-                                 "Cannot set indirect table\n");
-                       return rc == -EPERM ? -EOPNOTSUPP : rc;
-               }
+               rc = ena_indirection_table_set(adapter, indir);
+               if (rc)
+                       return rc;
        }
 
        switch (hfunc) {