Skip to content

Commit

Permalink
r8169: add gro support
Browse files Browse the repository at this point in the history
- Use napi_gro_receive() and vlan_gro_receive()
- Enable GRO by default

Tested on a RTL8111/8168 adapter

Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Acked-by: Francois Romieu <romieu@fr.zoreil.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Eric Dumazet authored and David S. Miller committed Sep 7, 2010
1 parent c936335 commit 2edae08
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions drivers/net/r8169.c
Original file line number Diff line number Diff line change
Expand Up @@ -1076,7 +1076,12 @@ static int rtl8169_rx_vlan_skb(struct rtl8169_private *tp, struct RxDesc *desc,
int ret;

if (vlgrp && (opts2 & RxVlanTag)) {
__vlan_hwaccel_rx(skb, vlgrp, swab16(opts2 & 0xffff), polling);
u16 vtag = swab16(opts2 & 0xffff);

if (likely(polling))
vlan_gro_receive(&tp->napi, vlgrp, vtag, skb);
else
__vlan_hwaccel_rx(skb, vlgrp, vtag, polling);
ret = 0;
} else
ret = -1;
Expand Down Expand Up @@ -3186,6 +3191,7 @@ rtl8169_init_one(struct pci_dev *pdev, const struct pci_device_id *ent)
#ifdef CONFIG_R8169_VLAN
dev->features |= NETIF_F_HW_VLAN_TX | NETIF_F_HW_VLAN_RX;
#endif
dev->features |= NETIF_F_GRO;

tp->intr_mask = 0xffff;
tp->align = cfg->align;
Expand Down Expand Up @@ -4561,7 +4567,7 @@ static int rtl8169_rx_interrupt(struct net_device *dev,

if (rtl8169_rx_vlan_skb(tp, desc, skb, polling) < 0) {
if (likely(polling))
netif_receive_skb(skb);
napi_gro_receive(&tp->napi, skb);
else
netif_rx(skb);
}
Expand Down

0 comments on commit 2edae08

Please sign in to comment.