diff options
Diffstat (limited to 'net/8021q')
-rw-r--r-- | net/8021q/vlan_core.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/net/8021q/vlan_core.c b/net/8021q/vlan_core.c index 6227248597c4..654e45f5719d 100644 --- a/net/8021q/vlan_core.c +++ b/net/8021q/vlan_core.c | |||
@@ -79,9 +79,6 @@ static int vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp, | |||
79 | { | 79 | { |
80 | struct sk_buff *p; | 80 | struct sk_buff *p; |
81 | 81 | ||
82 | if (netpoll_rx_on(skb)) | ||
83 | return GRO_NORMAL; | ||
84 | |||
85 | if (skb_bond_should_drop(skb)) | 82 | if (skb_bond_should_drop(skb)) |
86 | goto drop; | 83 | goto drop; |
87 | 84 | ||
@@ -107,6 +104,9 @@ drop: | |||
107 | int vlan_gro_receive(struct napi_struct *napi, struct vlan_group *grp, | 104 | int vlan_gro_receive(struct napi_struct *napi, struct vlan_group *grp, |
108 | unsigned int vlan_tci, struct sk_buff *skb) | 105 | unsigned int vlan_tci, struct sk_buff *skb) |
109 | { | 106 | { |
107 | if (netpoll_rx_on(skb)) | ||
108 | return vlan_hwaccel_receive_skb(skb, grp, vlan_tci); | ||
109 | |||
110 | skb_gro_reset_offset(skb); | 110 | skb_gro_reset_offset(skb); |
111 | 111 | ||
112 | return napi_skb_finish(vlan_gro_common(napi, grp, vlan_tci, skb), skb); | 112 | return napi_skb_finish(vlan_gro_common(napi, grp, vlan_tci, skb), skb); |
@@ -121,6 +121,9 @@ int vlan_gro_frags(struct napi_struct *napi, struct vlan_group *grp, | |||
121 | if (!skb) | 121 | if (!skb) |
122 | return NET_RX_DROP; | 122 | return NET_RX_DROP; |
123 | 123 | ||
124 | if (netpoll_rx_on(skb)) | ||
125 | return vlan_hwaccel_receive_skb(skb, grp, vlan_tci); | ||
126 | |||
124 | return napi_frags_finish(napi, skb, | 127 | return napi_frags_finish(napi, skb, |
125 | vlan_gro_common(napi, grp, vlan_tci, skb)); | 128 | vlan_gro_common(napi, grp, vlan_tci, skb)); |
126 | } | 129 | } |