Commit 2ffb4558 authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller

gro: Fix vlan/netpoll check again

Jarek Poplawski pointed out that my previous fix is broken for
VLAN+netpoll as if netpoll is enabled we'd end up in the normal
receive path instead of the VLAN receive path.

This patch fixes it by calling the VLAN receive hook.
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent d1c76af9
...@@ -79,9 +79,6 @@ static int vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp, ...@@ -79,9 +79,6 @@ static int vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp,
{ {
struct sk_buff *p; struct sk_buff *p;
if (netpoll_rx_on(skb))
return GRO_NORMAL;
if (skb_bond_should_drop(skb)) if (skb_bond_should_drop(skb))
goto drop; goto drop;
...@@ -107,6 +104,9 @@ static int vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp, ...@@ -107,6 +104,9 @@ static int vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp,
int vlan_gro_receive(struct napi_struct *napi, struct vlan_group *grp, int vlan_gro_receive(struct napi_struct *napi, struct vlan_group *grp,
unsigned int vlan_tci, struct sk_buff *skb) unsigned int vlan_tci, struct sk_buff *skb)
{ {
if (netpoll_rx_on(skb))
return vlan_hwaccel_receive_skb(skb, grp, vlan_tci);
skb_gro_reset_offset(skb); skb_gro_reset_offset(skb);
return napi_skb_finish(vlan_gro_common(napi, grp, vlan_tci, skb), skb); 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,6 +121,9 @@ int vlan_gro_frags(struct napi_struct *napi, struct vlan_group *grp,
if (!skb) if (!skb)
return NET_RX_DROP; return NET_RX_DROP;
if (netpoll_rx_on(skb))
return vlan_hwaccel_receive_skb(skb, grp, vlan_tci);
return napi_frags_finish(napi, skb, return napi_frags_finish(napi, skb,
vlan_gro_common(napi, grp, vlan_tci, skb)); vlan_gro_common(napi, grp, vlan_tci, skb));
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment