net: tun: record RX queue in skb before do_xdp_generic()
This allows netif_receive_generic_xdp() to correctly determine the RX queue from which the skb is coming, so that the context passed to the XDP program will contain the correct RX queue index. Signed-off-by: Gilberto Bertin <me@jibi.io> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e6aaeafd56
commit
3fe260e00c
|
@ -1888,6 +1888,7 @@ drop:
|
|||
|
||||
skb_reset_network_header(skb);
|
||||
skb_probe_transport_header(skb);
|
||||
skb_record_rx_queue(skb, tfile->queue_index);
|
||||
|
||||
if (skb_xdp) {
|
||||
struct bpf_prog *xdp_prog;
|
||||
|
@ -2459,6 +2460,7 @@ build:
|
|||
skb->protocol = eth_type_trans(skb, tun->dev);
|
||||
skb_reset_network_header(skb);
|
||||
skb_probe_transport_header(skb);
|
||||
skb_record_rx_queue(skb, tfile->queue_index);
|
||||
|
||||
if (skb_xdp) {
|
||||
err = do_xdp_generic(xdp_prog, skb);
|
||||
|
@ -2470,7 +2472,6 @@ build:
|
|||
!tfile->detached)
|
||||
rxhash = __skb_get_hash_symmetric(skb);
|
||||
|
||||
skb_record_rx_queue(skb, tfile->queue_index);
|
||||
netif_receive_skb(skb);
|
||||
|
||||
/* No need for get_cpu_ptr() here since this function is
|
||||
|
|
Loading…
Reference in New Issue