summaryrefslogtreecommitdiff
path: root/drivers/net/ethernet/realtek/r8169.c
diff options
context:
space:
mode:
authorHeiner Kallweit <hkallweit1@gmail.com>2019-03-31 15:18:48 +0200
committerDavid S. Miller <davem@davemloft.net>2019-03-31 11:10:56 -0700
commit6578229d4efb7ea6287861bfc2bd306140458e07 (patch)
treec98680975cdae93c53366b0b02dac712836c9572 /drivers/net/ethernet/realtek/r8169.c
parente66075555f89474e535b08f9107e13753520ad52 (diff)
r8169: use netif_receive_skb_list batching
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>
Diffstat (limited to 'drivers/net/ethernet/realtek/r8169.c')
-rw-r--r--drivers/net/ethernet/realtek/r8169.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
index a8ca26c2ae0c..c9ee1c8eb635 100644
--- a/drivers/net/ethernet/realtek/r8169.c
+++ b/drivers/net/ethernet/realtek/r8169.c
@@ -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 @@ process_pkt:
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 @@ release_descriptor:
count = cur_rx - tp->cur_rx;
tp->cur_rx = cur_rx;
+ netif_receive_skb_list(&rx_list);
+
return count;
}