net/dev: Convert to hotplug state machine
Install the callbacks via the state machine. Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Cc: netdev@vger.kernel.org Cc: "David S. Miller" <davem@davemloft.net> Cc: rt@linutronix.de Link: http://lkml.kernel.org/r/20161103145021.28528-9-bigeasy@linutronix.de Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
parent
517bbed906
commit
f0bf90def3
|
@ -36,6 +36,7 @@ enum cpuhp_state {
|
|||
CPUHP_PERCPU_CNT_DEAD,
|
||||
CPUHP_RADIX_DEAD,
|
||||
CPUHP_PAGE_ALLOC_DEAD,
|
||||
CPUHP_NET_DEV_DEAD,
|
||||
CPUHP_WORKQUEUE_PREP,
|
||||
CPUHP_POWER_NUMA_PREPARE,
|
||||
CPUHP_HRTIMERS_PREPARE,
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue