net: ena: remove code duplication in ena_com_update_nonadaptive_moderation_interval...
authorArthur Kiyanovski <akiyano@amazon.com>
Mon, 16 Sep 2019 11:31:30 +0000 (14:31 +0300)
committerDavid S. Miller <davem@davemloft.net>
Mon, 16 Sep 2019 20:06:02 +0000 (22:06 +0200)
Remove code duplication in:
ena_com_update_nonadaptive_moderation_interval_tx()
ena_com_update_nonadaptive_moderation_interval_rx()
functions.

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

index f3c67c27c19c008e7384e966f73f691342234389..bbb59fd220a1f6f4cf8c80b8ac982962bb958755 100644 (file)
@@ -2772,32 +2772,34 @@ bool ena_com_interrupt_moderation_supported(struct ena_com_dev *ena_dev)
                                                  ENA_ADMIN_INTERRUPT_MODERATION);
 }
 
-int ena_com_update_nonadaptive_moderation_interval_tx(struct ena_com_dev *ena_dev,
-                                                     u32 tx_coalesce_usecs)
+static int ena_com_update_nonadaptive_moderation_interval(u32 coalesce_usecs,
+                                                         u32 intr_delay_resolution,
+                                                         u32 *intr_moder_interval)
 {
-       if (!ena_dev->intr_delay_resolution) {
+       if (!intr_delay_resolution) {
                pr_err("Illegal interrupt delay granularity value\n");
                return -EFAULT;
        }
 
-       ena_dev->intr_moder_tx_interval = tx_coalesce_usecs /
-               ena_dev->intr_delay_resolution;
+       *intr_moder_interval = coalesce_usecs / intr_delay_resolution;
 
        return 0;
 }
 
+int ena_com_update_nonadaptive_moderation_interval_tx(struct ena_com_dev *ena_dev,
+                                                     u32 tx_coalesce_usecs)
+{
+       return ena_com_update_nonadaptive_moderation_interval(tx_coalesce_usecs,
+                                                             ena_dev->intr_delay_resolution,
+                                                             &ena_dev->intr_moder_tx_interval);
+}
+
 int ena_com_update_nonadaptive_moderation_interval_rx(struct ena_com_dev *ena_dev,
                                                      u32 rx_coalesce_usecs)
 {
-       if (!ena_dev->intr_delay_resolution) {
-               pr_err("Illegal interrupt delay granularity value\n");
-               return -EFAULT;
-       }
-
-       ena_dev->intr_moder_rx_interval = rx_coalesce_usecs /
-               ena_dev->intr_delay_resolution;
-
-       return 0;
+       return ena_com_update_nonadaptive_moderation_interval(rx_coalesce_usecs,
+                                                             ena_dev->intr_delay_resolution,
+                                                             &ena_dev->intr_moder_rx_interval);
 }
 
 void ena_com_destroy_interrupt_moderation(struct ena_com_dev *ena_dev)