18 static u32 adapter_count;
20 #define DRV_MODULE_NAME "bnx2i"
21 #define DRV_MODULE_VERSION "2.7.2.2"
22 #define DRV_MODULE_RELDATE "Apr 25, 2012"
33 "/57800/57810/57840 iSCSI Driver");
72 unsigned long action,
void *hcpu);
75 .notifier_call = bnx2i_cpu_callback,
134 if (tmp_hba->
cnic && tmp_hba->
cnic->cm_select_dev) {
156 if (hba->
cnic == cnic) {
180 #define BNX2I_INIT_POLL_TIME (1000 / HZ)
205 static void bnx2i_chip_cleanup(
struct bnx2i_hba *hba)
216 "connections\n", hba->
netdev->name,
241 int wait_delay = 1 *
HZ;
271 bnx2i_chip_cleanup(hba);
297 "iSCSI\n", hba->
netdev->name);
309 }
else if (rc == -
EBUSY)
311 "hba=%p, cnic=%p\n", hba, cnic);
347 if (bnx2i_init_one(hba, dev)) {
366 "found, dev 0x%p\n", dev);
370 list_del_init(&hba->
link);
429 static void bnx2i_percpu_thread_create(
unsigned int cpu)
434 p = &
per_cpu(bnx2i_percpu, cpu);
438 "bnx2i_thread/%d", cpu);
440 if (
likely(!IS_ERR(thread))) {
448 static void bnx2i_percpu_thread_destroy(
unsigned int cpu)
455 p = &
per_cpu(bnx2i_percpu, cpu);
462 list_del_init(&work->
list);
486 unsigned long action,
void *hcpu)
488 unsigned cpu = (
unsigned long)hcpu;
495 bnx2i_percpu_thread_create(cpu);
500 bnx2i_percpu_thread_destroy(cpu);
516 static int __init bnx2i_mod_init(
void)
545 p = &
per_cpu(bnx2i_percpu, cpu);
552 bnx2i_percpu_thread_create(cpu);
574 static
void __exit bnx2i_mod_exit(
void)
580 while (!list_empty(&adapter_list)) {
586 bnx2i_chip_cleanup(hba);
598 bnx2i_percpu_thread_destroy(cpu);