@@ -3664,13 +3664,14 @@ static void e1000_consume_page(struct e1000_buffer *bi, struct sk_buff *skb,
36643664static void e1000_receive_skb (struct e1000_adapter * adapter , u8 status ,
36653665 __le16 vlan , struct sk_buff * skb )
36663666{
3667- if (unlikely (adapter -> vlgrp && (status & E1000_RXD_STAT_VP ))) {
3668- vlan_hwaccel_receive_skb (skb , adapter -> vlgrp ,
3669- le16_to_cpu (vlan ) &
3670- E1000_RXD_SPC_VLAN_MASK );
3671- } else {
3672- netif_receive_skb (skb );
3673- }
3667+ skb -> protocol = eth_type_trans (skb , adapter -> netdev );
3668+
3669+ if ((unlikely (adapter -> vlgrp && (status & E1000_RXD_STAT_VP ))))
3670+ vlan_gro_receive (& adapter -> napi , adapter -> vlgrp ,
3671+ le16_to_cpu (vlan ) & E1000_RXD_SPC_VLAN_MASK ,
3672+ skb );
3673+ else
3674+ napi_gro_receive (& adapter -> napi , skb );
36743675}
36753676
36763677/**
@@ -3828,8 +3829,6 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter,
38283829 goto next_desc ;
38293830 }
38303831
3831- skb -> protocol = eth_type_trans (skb , netdev );
3832-
38333832 e1000_receive_skb (adapter , status , rx_desc -> special , skb );
38343833
38353834next_desc :
@@ -3992,8 +3991,6 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter,
39923991 ((u32 )(rx_desc -> errors ) << 24 ),
39933992 le16_to_cpu (rx_desc -> csum ), skb );
39943993
3995- skb -> protocol = eth_type_trans (skb , netdev );
3996-
39973994 e1000_receive_skb (adapter , status , rx_desc -> special , skb );
39983995
39993996next_desc :
0 commit comments