|
@@ -3664,13 +3664,14 @@ static void e1000_consume_page(struct e1000_buffer *bi, struct sk_buff *skb,
|
|
static void e1000_receive_skb(struct e1000_adapter *adapter, u8 status,
|
|
static void e1000_receive_skb(struct e1000_adapter *adapter, u8 status,
|
|
__le16 vlan, struct sk_buff *skb)
|
|
__le16 vlan, struct sk_buff *skb)
|
|
{
|
|
{
|
|
- if (unlikely(adapter->vlgrp && (status & E1000_RXD_STAT_VP))) {
|
|
|
|
- vlan_hwaccel_receive_skb(skb, adapter->vlgrp,
|
|
|
|
- le16_to_cpu(vlan) &
|
|
|
|
- E1000_RXD_SPC_VLAN_MASK);
|
|
|
|
- } else {
|
|
|
|
- netif_receive_skb(skb);
|
|
|
|
- }
|
|
|
|
|
|
+ skb->protocol = eth_type_trans(skb, adapter->netdev);
|
|
|
|
+
|
|
|
|
+ if ((unlikely(adapter->vlgrp && (status & E1000_RXD_STAT_VP))))
|
|
|
|
+ vlan_gro_receive(&adapter->napi, adapter->vlgrp,
|
|
|
|
+ le16_to_cpu(vlan) & E1000_RXD_SPC_VLAN_MASK,
|
|
|
|
+ skb);
|
|
|
|
+ else
|
|
|
|
+ napi_gro_receive(&adapter->napi, skb);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -3828,8 +3829,6 @@ static bool e1000_clean_jumbo_rx_irq(struct e1000_adapter *adapter,
|
|
goto next_desc;
|
|
goto next_desc;
|
|
}
|
|
}
|
|
|
|
|
|
- skb->protocol = eth_type_trans(skb, netdev);
|
|
|
|
-
|
|
|
|
e1000_receive_skb(adapter, status, rx_desc->special, skb);
|
|
e1000_receive_skb(adapter, status, rx_desc->special, skb);
|
|
|
|
|
|
next_desc:
|
|
next_desc:
|
|
@@ -3992,8 +3991,6 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter,
|
|
((u32)(rx_desc->errors) << 24),
|
|
((u32)(rx_desc->errors) << 24),
|
|
le16_to_cpu(rx_desc->csum), skb);
|
|
le16_to_cpu(rx_desc->csum), skb);
|
|
|
|
|
|
- skb->protocol = eth_type_trans(skb, netdev);
|
|
|
|
-
|
|
|
|
e1000_receive_skb(adapter, status, rx_desc->special, skb);
|
|
e1000_receive_skb(adapter, status, rx_desc->special, skb);
|
|
|
|
|
|
next_desc:
|
|
next_desc:
|