Skip to content

Commit 77a651f

Browse files
akiyanodavem330
authored andcommitted
net: ena: cosmetic: extract code to ena_indirection_table_set()
Extract code to ena_indirection_table_set() to make the code cleaner. Signed-off-by: Sameeh Jubran <[email protected]> Signed-off-by: Arthur Kiyanovski <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent dcc2789 commit 77a651f

File tree

1 file changed

+30
-18
lines changed

1 file changed

+30
-18
lines changed

drivers/net/ethernet/amazon/ena/ena_ethtool.c

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,32 @@ static u32 ena_get_rxfh_key_size(struct net_device *netdev)
636636
return ENA_HASH_KEY_SIZE;
637637
}
638638

639+
static int ena_indirection_table_set(struct ena_adapter *adapter,
640+
const u32 *indir)
641+
{
642+
struct ena_com_dev *ena_dev = adapter->ena_dev;
643+
int i, rc;
644+
645+
for (i = 0; i < ENA_RX_RSS_TABLE_SIZE; i++) {
646+
rc = ena_com_indirect_table_fill_entry(ena_dev,
647+
i,
648+
ENA_IO_RXQ_IDX(indir[i]));
649+
if (unlikely(rc)) {
650+
netif_err(adapter, drv, adapter->netdev,
651+
"Cannot fill indirect table (index is too large)\n");
652+
return rc;
653+
}
654+
}
655+
656+
rc = ena_com_indirect_table_set(ena_dev);
657+
if (rc) {
658+
netif_err(adapter, drv, adapter->netdev,
659+
"Cannot set indirect table\n");
660+
return rc == -EPERM ? -EOPNOTSUPP : rc;
661+
}
662+
return rc;
663+
}
664+
639665
static int ena_indirection_table_get(struct ena_adapter *adapter, u32 *indir)
640666
{
641667
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,
710736
struct ena_adapter *adapter = netdev_priv(netdev);
711737
struct ena_com_dev *ena_dev = adapter->ena_dev;
712738
enum ena_admin_hash_functions func = 0;
713-
int rc, i;
739+
int rc;
714740

715741
if (indir) {
716-
for (i = 0; i < ENA_RX_RSS_TABLE_SIZE; i++) {
717-
rc = ena_com_indirect_table_fill_entry(ena_dev,
718-
i,
719-
ENA_IO_RXQ_IDX(indir[i]));
720-
if (unlikely(rc)) {
721-
netif_err(adapter, drv, netdev,
722-
"Cannot fill indirect table (index is too large)\n");
723-
return rc;
724-
}
725-
}
726-
727-
rc = ena_com_indirect_table_set(ena_dev);
728-
if (rc) {
729-
netif_err(adapter, drv, netdev,
730-
"Cannot set indirect table\n");
731-
return rc == -EPERM ? -EOPNOTSUPP : rc;
732-
}
742+
rc = ena_indirection_table_set(adapter, indir);
743+
if (rc)
744+
return rc;
733745
}
734746

735747
switch (hfunc) {

0 commit comments

Comments
 (0)