|
@@ -2586,12 +2586,16 @@ static int __init bnx2fc_mod_init(void)
|
|
|
spin_lock_init(&p->fp_work_lock);
|
|
|
}
|
|
|
|
|
|
+ cpu_notifier_register_begin();
|
|
|
+
|
|
|
for_each_online_cpu(cpu) {
|
|
|
bnx2fc_percpu_thread_create(cpu);
|
|
|
}
|
|
|
|
|
|
/* Initialize per CPU interrupt thread */
|
|
|
- register_hotcpu_notifier(&bnx2fc_cpu_notifier);
|
|
|
+ __register_hotcpu_notifier(&bnx2fc_cpu_notifier);
|
|
|
+
|
|
|
+ cpu_notifier_register_done();
|
|
|
|
|
|
cnic_register_driver(CNIC_ULP_FCOE, &bnx2fc_cnic_cb);
|
|
|
|
|
@@ -2656,13 +2660,17 @@ static void __exit bnx2fc_mod_exit(void)
|
|
|
if (l2_thread)
|
|
|
kthread_stop(l2_thread);
|
|
|
|
|
|
- unregister_hotcpu_notifier(&bnx2fc_cpu_notifier);
|
|
|
+ cpu_notifier_register_begin();
|
|
|
|
|
|
/* Destroy per cpu threads */
|
|
|
for_each_online_cpu(cpu) {
|
|
|
bnx2fc_percpu_thread_destroy(cpu);
|
|
|
}
|
|
|
|
|
|
+ __unregister_hotcpu_notifier(&bnx2fc_cpu_notifier);
|
|
|
+
|
|
|
+ cpu_notifier_register_done();
|
|
|
+
|
|
|
destroy_workqueue(bnx2fc_wq);
|
|
|
/*
|
|
|
* detach from scsi transport
|