diff options
author | Grant Likely <grant.likely@secretlab.ca> | 2010-05-22 02:36:56 -0400 |
---|---|---|
committer | Grant Likely <grant.likely@secretlab.ca> | 2010-05-22 02:36:56 -0400 |
commit | cf9b59e9d3e008591d1f54830f570982bb307a0d (patch) | |
tree | 113478ce8fd8c832ba726ffdf59b82cb46356476 /drivers/scsi/bnx2i/bnx2i_init.c | |
parent | 44504b2bebf8b5823c59484e73096a7d6574471d (diff) | |
parent | f4b87dee923342505e1ddba8d34ce9de33e75050 (diff) |
Merge remote branch 'origin' into secretlab/next-devicetree
Merging in current state of Linus' tree to deal with merge conflicts and
build failures in vio.c after merge.
Conflicts:
drivers/i2c/busses/i2c-cpm.c
drivers/i2c/busses/i2c-mpc.c
drivers/net/gianfar.c
Also fixed up one line in arch/powerpc/kernel/vio.c to use the
correct node pointer.
Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
Diffstat (limited to 'drivers/scsi/bnx2i/bnx2i_init.c')
-rw-r--r-- | drivers/scsi/bnx2i/bnx2i_init.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/drivers/scsi/bnx2i/bnx2i_init.c b/drivers/scsi/bnx2i/bnx2i_init.c index 6d8172e781cf..af6a00a600fb 100644 --- a/drivers/scsi/bnx2i/bnx2i_init.c +++ b/drivers/scsi/bnx2i/bnx2i_init.c | |||
@@ -17,8 +17,8 @@ static struct list_head adapter_list = LIST_HEAD_INIT(adapter_list); | |||
17 | static u32 adapter_count; | 17 | static u32 adapter_count; |
18 | 18 | ||
19 | #define DRV_MODULE_NAME "bnx2i" | 19 | #define DRV_MODULE_NAME "bnx2i" |
20 | #define DRV_MODULE_VERSION "2.1.0" | 20 | #define DRV_MODULE_VERSION "2.1.1" |
21 | #define DRV_MODULE_RELDATE "Dec 06, 2009" | 21 | #define DRV_MODULE_RELDATE "Mar 24, 2010" |
22 | 22 | ||
23 | static char version[] __devinitdata = | 23 | static char version[] __devinitdata = |
24 | "Broadcom NetXtreme II iSCSI Driver " DRV_MODULE_NAME \ | 24 | "Broadcom NetXtreme II iSCSI Driver " DRV_MODULE_NAME \ |
@@ -26,7 +26,8 @@ static char version[] __devinitdata = | |||
26 | 26 | ||
27 | 27 | ||
28 | MODULE_AUTHOR("Anil Veerabhadrappa <anilgv@broadcom.com>"); | 28 | MODULE_AUTHOR("Anil Veerabhadrappa <anilgv@broadcom.com>"); |
29 | MODULE_DESCRIPTION("Broadcom NetXtreme II BCM5706/5708/5709 iSCSI Driver"); | 29 | MODULE_DESCRIPTION("Broadcom NetXtreme II BCM5706/5708/5709/57710/57711" |
30 | " iSCSI Driver"); | ||
30 | MODULE_LICENSE("GPL"); | 31 | MODULE_LICENSE("GPL"); |
31 | MODULE_VERSION(DRV_MODULE_VERSION); | 32 | MODULE_VERSION(DRV_MODULE_VERSION); |
32 | 33 | ||
@@ -177,11 +178,22 @@ void bnx2i_stop(void *handle) | |||
177 | struct bnx2i_hba *hba = handle; | 178 | struct bnx2i_hba *hba = handle; |
178 | 179 | ||
179 | /* check if cleanup happened in GOING_DOWN context */ | 180 | /* check if cleanup happened in GOING_DOWN context */ |
180 | clear_bit(ADAPTER_STATE_UP, &hba->adapter_state); | ||
181 | if (!test_and_clear_bit(ADAPTER_STATE_GOING_DOWN, | 181 | if (!test_and_clear_bit(ADAPTER_STATE_GOING_DOWN, |
182 | &hba->adapter_state)) | 182 | &hba->adapter_state)) |
183 | iscsi_host_for_each_session(hba->shost, | 183 | iscsi_host_for_each_session(hba->shost, |
184 | bnx2i_drop_session); | 184 | bnx2i_drop_session); |
185 | |||
186 | /* Wait for all endpoints to be torn down, Chip will be reset once | ||
187 | * control returns to network driver. So it is required to cleanup and | ||
188 | * release all connection resources before returning from this routine. | ||
189 | */ | ||
190 | wait_event_interruptible_timeout(hba->eh_wait, | ||
191 | (hba->ofld_conns_active == 0), | ||
192 | hba->hba_shutdown_tmo); | ||
193 | /* This flag should be cleared last so that ep_disconnect() gracefully | ||
194 | * cleans up connection context | ||
195 | */ | ||
196 | clear_bit(ADAPTER_STATE_UP, &hba->adapter_state); | ||
185 | } | 197 | } |
186 | 198 | ||
187 | /** | 199 | /** |
@@ -278,6 +290,7 @@ static int bnx2i_init_one(struct bnx2i_hba *hba, struct cnic_dev *cnic) | |||
278 | int rc; | 290 | int rc; |
279 | 291 | ||
280 | mutex_lock(&bnx2i_dev_lock); | 292 | mutex_lock(&bnx2i_dev_lock); |
293 | hba->cnic = cnic; | ||
281 | rc = cnic->register_device(cnic, CNIC_ULP_ISCSI, hba); | 294 | rc = cnic->register_device(cnic, CNIC_ULP_ISCSI, hba); |
282 | if (!rc) { | 295 | if (!rc) { |
283 | hba->age++; | 296 | hba->age++; |
@@ -324,8 +337,7 @@ void bnx2i_ulp_init(struct cnic_dev *dev) | |||
324 | if (bnx2i_init_one(hba, dev)) { | 337 | if (bnx2i_init_one(hba, dev)) { |
325 | printk(KERN_ERR "bnx2i - hba %p init failed\n", hba); | 338 | printk(KERN_ERR "bnx2i - hba %p init failed\n", hba); |
326 | bnx2i_free_hba(hba); | 339 | bnx2i_free_hba(hba); |
327 | } else | 340 | } |
328 | hba->cnic = dev; | ||
329 | } | 341 | } |
330 | 342 | ||
331 | 343 | ||