Message ID | 20190609004803.9018-1-jakub.kicinski@netronome.com |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | [net] nfp: ensure skb network header is set for packet redirect | expand |
From: Jakub Kicinski <jakub.kicinski@netronome.com> Date: Sat, 8 Jun 2019 17:48:03 -0700 > From: John Hurley <john.hurley@netronome.com> > > Packets received at the NFP driver may be redirected to egress of another > netdev (e.g. in the case of OvS internal ports). On the egress path, some > processes, like TC egress hooks, may expect the network header offset > field in the skb to be correctly set. If this is not the case there is > potential for abnormal behaviour and even the triggering of BUG() calls. > > Set the skb network header field before the mac header pull when doing a > packet redirect. > > Fixes: 27f54b582567 ("nfp: allow fallback packets from non-reprs") > Signed-off-by: John Hurley <john.hurley@netronome.com> > Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Applied.
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c index b82b684f52ce..36a3bd30cfd9 100644 --- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c +++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c @@ -1867,6 +1867,7 @@ static int nfp_net_rx(struct nfp_net_rx_ring *rx_ring, int budget) napi_gro_receive(&rx_ring->r_vec->napi, skb); } else { skb->dev = netdev; + skb_reset_network_header(skb); __skb_push(skb, ETH_HLEN); dev_queue_xmit(skb); }