]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
r8169: use netif_receive_skb_list batching
authorHeiner Kallweit <hkallweit1@gmail.com>
Sun, 31 Mar 2019 13:18:48 +0000 (15:18 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 31 Mar 2019 18:10:56 +0000 (11:10 -0700)
Use netif_receive_skb_list() instead of napi_gro_receive() to benefit
from batched skb processing.

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

index a8ca26c2ae0c508664a2b03d32cbec67c017f0e1..c9ee1c8eb635339f2138c7b5c7e7d09ed34690b4 100644 (file)
@@ -6426,6 +6426,7 @@ static int rtl_rx(struct net_device *dev, struct rtl8169_private *tp, u32 budget
 {
        unsigned int cur_rx, rx_left;
        unsigned int count;
+       LIST_HEAD(rx_list);
 
        cur_rx = tp->cur_rx;
 
@@ -6501,7 +6502,7 @@ static int rtl_rx(struct net_device *dev, struct rtl8169_private *tp, u32 budget
                        if (skb->pkt_type == PACKET_MULTICAST)
                                dev->stats.multicast++;
 
-                       napi_gro_receive(&tp->napi, skb);
+                       list_add_tail(&skb->list, &rx_list);
 
                        u64_stats_update_begin(&tp->rx_stats.syncp);
                        tp->rx_stats.packets++;
@@ -6516,6 +6517,8 @@ static int rtl_rx(struct net_device *dev, struct rtl8169_private *tp, u32 budget
        count = cur_rx - tp->cur_rx;
        tp->cur_rx = cur_rx;
 
+       netif_receive_skb_list(&rx_list);
+
        return count;
 }