]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
r8169: drop member opts1_mask from struct rtl8169_private
authorHeiner Kallweit <hkallweit1@gmail.com>
Tue, 17 Apr 2018 21:30:29 +0000 (23:30 +0200)
committerDavid S. Miller <davem@davemloft.net>
Thu, 19 Apr 2018 01:11:59 +0000 (21:11 -0400)
We can get rid of member opts1_mask and in addition save a few cpu
cycles in the hot path of rtl_rx().

Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/realtek/r8169.c

index ead853ac63de04f3094ffbd15b3da4e90ba2477f..fe838112143a36ca390f211cc09845cedc343f18 100644 (file)
@@ -836,7 +836,6 @@ struct rtl8169_private {
        struct rtl8169_counters *counters;
        struct rtl8169_tc_offsets tc_offset;
        u32 saved_wolopts;
-       u32 opts1_mask;
 
        struct rtl_fw {
                const struct firmware *fw;
@@ -7347,7 +7346,7 @@ static int rtl_rx(struct net_device *dev, struct rtl8169_private *tp, u32 budget
                struct RxDesc *desc = tp->RxDescArray + entry;
                u32 status;
 
-               status = le32_to_cpu(desc->opts1) & tp->opts1_mask;
+               status = le32_to_cpu(desc->opts1);
                if (status & DescOwn)
                        break;
 
@@ -7365,14 +7364,16 @@ static int rtl_rx(struct net_device *dev, struct rtl8169_private *tp, u32 budget
                                dev->stats.rx_length_errors++;
                        if (status & RxCRC)
                                dev->stats.rx_crc_errors++;
-                       if (status & RxFOVF) {
+                       /* RxFOVF is a reserved bit on later chip versions */
+                       if (tp->mac_version == RTL_GIGA_MAC_VER_01 &&
+                           status & RxFOVF) {
                                rtl_schedule_task(tp, RTL_FLAG_TASK_RESET_PENDING);
                                dev->stats.rx_fifo_errors++;
-                       }
-                       if ((status & (RxRUNT | RxCRC)) &&
-                           !(status & (RxRWT | RxFOVF)) &&
-                           (dev->features & NETIF_F_RXALL))
+                       } else if (status & (RxRUNT | RxCRC) &&
+                                  !(status & RxRWT) &&
+                                  dev->features & NETIF_F_RXALL) {
                                goto process_pkt;
+                       }
                } else {
                        struct sk_buff *skb;
                        dma_addr_t addr;
@@ -8327,9 +8328,6 @@ static int rtl_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
        tp->event_slow = cfg->event_slow;
        tp->coalesce_info = cfg->coalesce_info;
 
-       tp->opts1_mask = (tp->mac_version != RTL_GIGA_MAC_VER_01) ?
-               ~(RxBOVF | RxFOVF) : ~0;
-
        timer_setup(&tp->timer, rtl8169_phy_timer, 0);
 
        tp->rtl_fw = RTL_FIRMWARE_UNKNOWN;