net: Update generic_xdp_needed static key to modern api

No changes in refcount semantics -- key init is false; replace

static_key_slow_inc|dec   with   static_branch_inc|dec
static_key_false          with   static_branch_unlikely

Added a '_key' suffix to generic_xdp_needed, for better self
documentation.

Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Davidlohr Bueso 2018-05-08 09:07:02 -07:00 committed by David S. Miller
parent 39e8392201
commit 02786475c7

View File

@ -4154,7 +4154,7 @@ void generic_xdp_tx(struct sk_buff *skb, struct bpf_prog *xdp_prog)
} }
EXPORT_SYMBOL_GPL(generic_xdp_tx); EXPORT_SYMBOL_GPL(generic_xdp_tx);
static struct static_key generic_xdp_needed __read_mostly; static DEFINE_STATIC_KEY_FALSE(generic_xdp_needed_key);
int do_xdp_generic(struct bpf_prog *xdp_prog, struct sk_buff *skb) int do_xdp_generic(struct bpf_prog *xdp_prog, struct sk_buff *skb)
{ {
@ -4194,7 +4194,7 @@ static int netif_rx_internal(struct sk_buff *skb)
trace_netif_rx(skb); trace_netif_rx(skb);
if (static_key_false(&generic_xdp_needed)) { if (static_branch_unlikely(&generic_xdp_needed_key)) {
int ret; int ret;
preempt_disable(); preempt_disable();
@ -4726,9 +4726,9 @@ static int generic_xdp_install(struct net_device *dev, struct netdev_bpf *xdp)
bpf_prog_put(old); bpf_prog_put(old);
if (old && !new) { if (old && !new) {
static_key_slow_dec(&generic_xdp_needed); static_branch_dec(&generic_xdp_needed_key);
} else if (new && !old) { } else if (new && !old) {
static_key_slow_inc(&generic_xdp_needed); static_branch_inc(&generic_xdp_needed_key);
dev_disable_lro(dev); dev_disable_lro(dev);
dev_disable_gro_hw(dev); dev_disable_gro_hw(dev);
} }
@ -4756,7 +4756,7 @@ static int netif_receive_skb_internal(struct sk_buff *skb)
if (skb_defer_rx_timestamp(skb)) if (skb_defer_rx_timestamp(skb))
return NET_RX_SUCCESS; return NET_RX_SUCCESS;
if (static_key_false(&generic_xdp_needed)) { if (static_branch_unlikely(&generic_xdp_needed_key)) {
int ret; int ret;
preempt_disable(); preempt_disable();