|
@@ -7953,18 +7953,13 @@ out:
|
|
|
}
|
|
|
EXPORT_SYMBOL_GPL(dev_change_net_namespace);
|
|
|
|
|
|
-static int dev_cpu_callback(struct notifier_block *nfb,
|
|
|
- unsigned long action,
|
|
|
- void *ocpu)
|
|
|
+static int dev_cpu_dead(unsigned int oldcpu)
|
|
|
{
|
|
|
struct sk_buff **list_skb;
|
|
|
struct sk_buff *skb;
|
|
|
- unsigned int cpu, oldcpu = (unsigned long)ocpu;
|
|
|
+ unsigned int cpu;
|
|
|
struct softnet_data *sd, *oldsd;
|
|
|
|
|
|
- if (action != CPU_DEAD && action != CPU_DEAD_FROZEN)
|
|
|
- return NOTIFY_OK;
|
|
|
-
|
|
|
local_irq_disable();
|
|
|
cpu = smp_processor_id();
|
|
|
sd = &per_cpu(softnet_data, cpu);
|
|
@@ -8014,10 +8009,9 @@ static int dev_cpu_callback(struct notifier_block *nfb,
|
|
|
input_queue_head_incr(oldsd);
|
|
|
}
|
|
|
|
|
|
- return NOTIFY_OK;
|
|
|
+ return 0;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
* netdev_increment_features - increment feature set by one
|
|
|
* @all: current feature set
|
|
@@ -8351,7 +8345,9 @@ static int __init net_dev_init(void)
|
|
|
open_softirq(NET_TX_SOFTIRQ, net_tx_action);
|
|
|
open_softirq(NET_RX_SOFTIRQ, net_rx_action);
|
|
|
|
|
|
- hotcpu_notifier(dev_cpu_callback, 0);
|
|
|
+ rc = cpuhp_setup_state_nocalls(CPUHP_NET_DEV_DEAD, "net/dev:dead",
|
|
|
+ NULL, dev_cpu_dead);
|
|
|
+ WARN_ON(rc < 0);
|
|
|
dst_subsys_init();
|
|
|
rc = 0;
|
|
|
out:
|