diff options
author | Eric Dumazet <edumazet@google.com> | 2023-03-17 16:20:02 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2023-03-19 10:57:54 +0000 |
commit | 105a201ebf3312990b96c4fbaade22e31402f8cc (patch) | |
tree | 2a80ad1832af132b1c1b6555718abaf1750cc30f /net/packet/internal.h | |
parent | 72abf2179969a54c16c03b1649b922ec179b364a (diff) | |
download | lwn-105a201ebf3312990b96c4fbaade22e31402f8cc.tar.gz lwn-105a201ebf3312990b96c4fbaade22e31402f8cc.zip |
net/packet: remove po->xmit
Use PACKET_SOCK_QDISC_BYPASS atomic bit instead of a pointer.
This removes one indirect call in fast path,
and READ_ONCE()/WRITE_ONCE() annotations as well.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Suggested-by: Willem de Bruijn <willemb@google.com>
Cc: Daniel Borkmann <daniel@iogearbox.net>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/packet/internal.h')
-rw-r--r-- | net/packet/internal.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/packet/internal.h b/net/packet/internal.h index e793e99646f1..27930f69f368 100644 --- a/net/packet/internal.h +++ b/net/packet/internal.h @@ -128,7 +128,6 @@ struct packet_sock { unsigned int tp_tstamp; struct completion skb_completion; struct net_device __rcu *cached_dev; - int (*xmit)(struct sk_buff *skb); struct packet_type prot_hook ____cacheline_aligned_in_smp; atomic_t tp_drops ____cacheline_aligned_in_smp; }; @@ -143,6 +142,7 @@ enum packet_sock_flags { PACKET_SOCK_HAS_VNET_HDR, PACKET_SOCK_RUNNING, PACKET_SOCK_PRESSURE, + PACKET_SOCK_QDISC_BYPASS, }; static inline void packet_sock_flag_set(struct packet_sock *po, |