Skip to content

Commit

Permalink
gro: Fix vlan/netpoll check again
Browse files Browse the repository at this point in the history
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: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Herbert Xu authored and David S. Miller committed Mar 17, 2009
1 parent d1c76af commit 2ffb455
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions net/8021q/vlan_core.c
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,6 @@ static int vlan_gro_common(struct napi_struct *napi, struct vlan_group *grp,
{
struct sk_buff *p;

if (netpoll_rx_on(skb))
return GRO_NORMAL;

if (skb_bond_should_drop(skb))
goto drop;

Expand All @@ -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,
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);

return napi_skb_finish(vlan_gro_common(napi, grp, vlan_tci, skb), skb);
Expand All @@ -121,6 +121,9 @@ int vlan_gro_frags(struct napi_struct *napi, struct vlan_group *grp,
if (!skb)
return NET_RX_DROP;

if (netpoll_rx_on(skb))
return vlan_hwaccel_receive_skb(skb, grp, vlan_tci);

return napi_frags_finish(napi, skb,
vlan_gro_common(napi, grp, vlan_tci, skb));
}
Expand Down

0 comments on commit 2ffb455

Please sign in to comment.