diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-20 16:29:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-05-20 16:29:52 -0400 |
commit | ad9471752ebae25daa133b4e5d9299809c35e155 (patch) | |
tree | dfcc75d7ee75ef0465c109423885c4326ccf9b9f /drivers/scsi/scsi_transport_fc.c | |
parent | 6c1b8d94bcc1882e451d0e7a28a4a5253f4970ab (diff) | |
parent | 6ad11eaa8a689a27e0c99905bcf800a37cd432a0 (diff) |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6: (110 commits)
[SCSI] qla2xxx: Refactor call to qla2xxx_read_sfp for thermal temperature.
[SCSI] qla2xxx: Unify the read/write sfp mailbox command routines.
[SCSI] qla2xxx: Clear complete initialization control block.
[SCSI] qla2xxx: Allow an override of the registered maximum LUN.
[SCSI] qla2xxx: Add host number in reset and quiescent message logs.
[SCSI] qla2xxx: Correctly read sfp single byte mailbox register.
[SCSI] qla2xxx: Add qla82xx_rom_unlock() function.
[SCSI] qla2xxx: Log if qla82xx firmware fails to load from flash.
[SCSI] qla2xxx: Use passed in host to initialize local scsi_qla_host in queuecommand function
[SCSI] qla2xxx: Correct buffer start in edc sysfs debug print.
[SCSI] qla2xxx: Update firmware version after flash update for ISP82xx.
[SCSI] qla2xxx: Fix hang during driver unload when vport is active.
[SCSI] qla2xxx: Properly set the dsd_list_len for dsd_chaining in cmd type 6.
[SCSI] qla2xxx: Fix virtual port failing to login after chip reset.
[SCSI] qla2xxx: Fix vport delete hang when logins are outstanding.
[SCSI] hpsa: Change memset using sizeof(ptr) to sizeof(*ptr)
[SCSI] ipr: Rate limit DMA mapping errors
[SCSI] hpsa: add P2000 to list of shared SAS devices
[SCSI] hpsa: do not attempt PCI power management reset method if we know it won't work.
[SCSI] hpsa: remove superfluous sleeps around reset code
...
Diffstat (limited to 'drivers/scsi/scsi_transport_fc.c')
-rw-r--r-- | drivers/scsi/scsi_transport_fc.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c index 815069d13f9b..1b214910b714 100644 --- a/drivers/scsi/scsi_transport_fc.c +++ b/drivers/scsi/scsi_transport_fc.c | |||
@@ -422,8 +422,7 @@ static int fc_host_setup(struct transport_container *tc, struct device *dev, | |||
422 | 422 | ||
423 | snprintf(fc_host->work_q_name, sizeof(fc_host->work_q_name), | 423 | snprintf(fc_host->work_q_name, sizeof(fc_host->work_q_name), |
424 | "fc_wq_%d", shost->host_no); | 424 | "fc_wq_%d", shost->host_no); |
425 | fc_host->work_q = create_singlethread_workqueue( | 425 | fc_host->work_q = alloc_workqueue(fc_host->work_q_name, 0, 0); |
426 | fc_host->work_q_name); | ||
427 | if (!fc_host->work_q) | 426 | if (!fc_host->work_q) |
428 | return -ENOMEM; | 427 | return -ENOMEM; |
429 | 428 | ||
@@ -431,8 +430,8 @@ static int fc_host_setup(struct transport_container *tc, struct device *dev, | |||
431 | snprintf(fc_host->devloss_work_q_name, | 430 | snprintf(fc_host->devloss_work_q_name, |
432 | sizeof(fc_host->devloss_work_q_name), | 431 | sizeof(fc_host->devloss_work_q_name), |
433 | "fc_dl_%d", shost->host_no); | 432 | "fc_dl_%d", shost->host_no); |
434 | fc_host->devloss_work_q = create_singlethread_workqueue( | 433 | fc_host->devloss_work_q = |
435 | fc_host->devloss_work_q_name); | 434 | alloc_workqueue(fc_host->devloss_work_q_name, 0, 0); |
436 | if (!fc_host->devloss_work_q) { | 435 | if (!fc_host->devloss_work_q) { |
437 | destroy_workqueue(fc_host->work_q); | 436 | destroy_workqueue(fc_host->work_q); |
438 | fc_host->work_q = NULL; | 437 | fc_host->work_q = NULL; |
@@ -2489,6 +2488,8 @@ fc_rport_final_delete(struct work_struct *work) | |||
2489 | unsigned long flags; | 2488 | unsigned long flags; |
2490 | int do_callback = 0; | 2489 | int do_callback = 0; |
2491 | 2490 | ||
2491 | fc_terminate_rport_io(rport); | ||
2492 | |||
2492 | /* | 2493 | /* |
2493 | * if a scan is pending, flush the SCSI Host work_q so that | 2494 | * if a scan is pending, flush the SCSI Host work_q so that |
2494 | * that we can reclaim the rport scan work element. | 2495 | * that we can reclaim the rport scan work element. |
@@ -2496,8 +2497,6 @@ fc_rport_final_delete(struct work_struct *work) | |||
2496 | if (rport->flags & FC_RPORT_SCAN_PENDING) | 2497 | if (rport->flags & FC_RPORT_SCAN_PENDING) |
2497 | scsi_flush_work(shost); | 2498 | scsi_flush_work(shost); |
2498 | 2499 | ||
2499 | fc_terminate_rport_io(rport); | ||
2500 | |||
2501 | /* | 2500 | /* |
2502 | * Cancel any outstanding timers. These should really exist | 2501 | * Cancel any outstanding timers. These should really exist |
2503 | * only when rmmod'ing the LLDD and we're asking for | 2502 | * only when rmmod'ing the LLDD and we're asking for |