diff options
Diffstat (limited to 'drivers/scsi/bnx2i/bnx2i_init.c')
| -rw-r--r-- | drivers/scsi/bnx2i/bnx2i_init.c | 12 | 
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/scsi/bnx2i/bnx2i_init.c b/drivers/scsi/bnx2i/bnx2i_init.c index 34c294b42c8..80c03b452d6 100644 --- a/drivers/scsi/bnx2i/bnx2i_init.c +++ b/drivers/scsi/bnx2i/bnx2i_init.c @@ -537,11 +537,15 @@ static int __init bnx2i_mod_init(void)  		p->iothread = NULL;  	} +	cpu_notifier_register_begin(); +  	for_each_online_cpu(cpu)  		bnx2i_percpu_thread_create(cpu);  	/* Initialize per CPU interrupt thread */ -	register_hotcpu_notifier(&bnx2i_cpu_notifier); +	__register_hotcpu_notifier(&bnx2i_cpu_notifier); + +	cpu_notifier_register_done();  	return 0; @@ -581,11 +585,15 @@ static void __exit bnx2i_mod_exit(void)  	}  	mutex_unlock(&bnx2i_dev_lock); -	unregister_hotcpu_notifier(&bnx2i_cpu_notifier); +	cpu_notifier_register_begin();  	for_each_online_cpu(cpu)  		bnx2i_percpu_thread_destroy(cpu); +	__unregister_hotcpu_notifier(&bnx2i_cpu_notifier); + +	cpu_notifier_register_done(); +  	iscsi_unregister_transport(&bnx2i_iscsi_transport);  	cnic_unregister_driver(CNIC_ULP_ISCSI);  }  | 
