|
@@ -1755,33 +1755,33 @@ int call_netdevice_notifiers(unsigned long val, struct net_device *dev)
|
|
EXPORT_SYMBOL(call_netdevice_notifiers);
|
|
EXPORT_SYMBOL(call_netdevice_notifiers);
|
|
|
|
|
|
#ifdef CONFIG_NET_INGRESS
|
|
#ifdef CONFIG_NET_INGRESS
|
|
-static struct static_key ingress_needed __read_mostly;
|
|
|
|
|
|
+static DEFINE_STATIC_KEY_FALSE(ingress_needed_key);
|
|
|
|
|
|
void net_inc_ingress_queue(void)
|
|
void net_inc_ingress_queue(void)
|
|
{
|
|
{
|
|
- static_key_slow_inc(&ingress_needed);
|
|
|
|
|
|
+ static_branch_inc(&ingress_needed_key);
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(net_inc_ingress_queue);
|
|
EXPORT_SYMBOL_GPL(net_inc_ingress_queue);
|
|
|
|
|
|
void net_dec_ingress_queue(void)
|
|
void net_dec_ingress_queue(void)
|
|
{
|
|
{
|
|
- static_key_slow_dec(&ingress_needed);
|
|
|
|
|
|
+ static_branch_dec(&ingress_needed_key);
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(net_dec_ingress_queue);
|
|
EXPORT_SYMBOL_GPL(net_dec_ingress_queue);
|
|
#endif
|
|
#endif
|
|
|
|
|
|
#ifdef CONFIG_NET_EGRESS
|
|
#ifdef CONFIG_NET_EGRESS
|
|
-static struct static_key egress_needed __read_mostly;
|
|
|
|
|
|
+static DEFINE_STATIC_KEY_FALSE(egress_needed_key);
|
|
|
|
|
|
void net_inc_egress_queue(void)
|
|
void net_inc_egress_queue(void)
|
|
{
|
|
{
|
|
- static_key_slow_inc(&egress_needed);
|
|
|
|
|
|
+ static_branch_inc(&egress_needed_key);
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(net_inc_egress_queue);
|
|
EXPORT_SYMBOL_GPL(net_inc_egress_queue);
|
|
|
|
|
|
void net_dec_egress_queue(void)
|
|
void net_dec_egress_queue(void)
|
|
{
|
|
{
|
|
- static_key_slow_dec(&egress_needed);
|
|
|
|
|
|
+ static_branch_dec(&egress_needed_key);
|
|
}
|
|
}
|
|
EXPORT_SYMBOL_GPL(net_dec_egress_queue);
|
|
EXPORT_SYMBOL_GPL(net_dec_egress_queue);
|
|
#endif
|
|
#endif
|
|
@@ -3532,7 +3532,7 @@ static int __dev_queue_xmit(struct sk_buff *skb, void *accel_priv)
|
|
#ifdef CONFIG_NET_CLS_ACT
|
|
#ifdef CONFIG_NET_CLS_ACT
|
|
skb->tc_at_ingress = 0;
|
|
skb->tc_at_ingress = 0;
|
|
# ifdef CONFIG_NET_EGRESS
|
|
# ifdef CONFIG_NET_EGRESS
|
|
- if (static_key_false(&egress_needed)) {
|
|
|
|
|
|
+ if (static_branch_unlikely(&egress_needed_key)) {
|
|
skb = sch_handle_egress(skb, &rc, dev);
|
|
skb = sch_handle_egress(skb, &rc, dev);
|
|
if (!skb)
|
|
if (!skb)
|
|
goto out;
|
|
goto out;
|
|
@@ -4566,7 +4566,7 @@ another_round:
|
|
|
|
|
|
skip_taps:
|
|
skip_taps:
|
|
#ifdef CONFIG_NET_INGRESS
|
|
#ifdef CONFIG_NET_INGRESS
|
|
- if (static_key_false(&ingress_needed)) {
|
|
|
|
|
|
+ if (static_branch_unlikely(&ingress_needed_key)) {
|
|
skb = sch_handle_ingress(skb, &pt_prev, &ret, orig_dev);
|
|
skb = sch_handle_ingress(skb, &pt_prev, &ret, orig_dev);
|
|
if (!skb)
|
|
if (!skb)
|
|
goto out;
|
|
goto out;
|