diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-17 20:54:40 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-03-17 20:54:40 -0400 |
commit | c55d267de274d308927b60c3e740c1a826832317 (patch) | |
tree | 21b53a8c725d9f9650f60d94b349459d5b8dae10 /drivers/scsi/ipr.c | |
parent | 61ef46fd45c3c62dc7c880a45dd2aa841b9af8fb (diff) | |
parent | bc898c97f7ba24def788d9f80786cf028a197122 (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: (170 commits)
[SCSI] scsi_dh_rdac: Add MD36xxf into device list
[SCSI] scsi_debug: add consecutive medium errors
[SCSI] libsas: fix ata list corruption issue
[SCSI] hpsa: export resettable host attribute
[SCSI] hpsa: move device attributes to avoid forward declarations
[SCSI] scsi_debug: Logical Block Provisioning (SBC3r26)
[SCSI] sd: Logical Block Provisioning update
[SCSI] Include protection operation in SCSI command trace
[SCSI] hpsa: fix incorrect PCI IDs and add two new ones (2nd try)
[SCSI] target: Fix volume size misreporting for volumes > 2TB
[SCSI] bnx2fc: Broadcom FCoE offload driver
[SCSI] fcoe: fix broken fcoe interface reset
[SCSI] fcoe: precedence bug in fcoe_filter_frames()
[SCSI] libfcoe: Remove stale fcoe-netdev entries
[SCSI] libfcoe: Move FCOE_MTU definition from fcoe.h to libfcoe.h
[SCSI] libfc: introduce __fc_fill_fc_hdr that accepts fc_hdr as an argument
[SCSI] fcoe, libfc: initialize EM anchors list and then update npiv EMs
[SCSI] Revert "[SCSI] libfc: fix exchange being deleted when the abort itself is timed out"
[SCSI] libfc: Fixing a memory leak when destroying an interface
[SCSI] megaraid_sas: Version and Changelog update
...
Fix up trivial conflicts due to whitespace differences in
drivers/scsi/libsas/{sas_ata.c,sas_scsi_host.c}
Diffstat (limited to 'drivers/scsi/ipr.c')
-rw-r--r-- | drivers/scsi/ipr.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index d841e98a8bd5..0621238fac4a 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c | |||
@@ -1301,7 +1301,7 @@ static void ipr_handle_config_change(struct ipr_ioa_cfg *ioa_cfg, | |||
1301 | ipr_clear_res_target(res); | 1301 | ipr_clear_res_target(res); |
1302 | list_move_tail(&res->queue, &ioa_cfg->free_res_q); | 1302 | list_move_tail(&res->queue, &ioa_cfg->free_res_q); |
1303 | } | 1303 | } |
1304 | } else if (!res->sdev) { | 1304 | } else if (!res->sdev || res->del_from_ml) { |
1305 | res->add_to_ml = 1; | 1305 | res->add_to_ml = 1; |
1306 | if (ioa_cfg->allow_ml_add_del) | 1306 | if (ioa_cfg->allow_ml_add_del) |
1307 | schedule_work(&ioa_cfg->work_q); | 1307 | schedule_work(&ioa_cfg->work_q); |
@@ -3104,7 +3104,10 @@ restart: | |||
3104 | did_work = 1; | 3104 | did_work = 1; |
3105 | sdev = res->sdev; | 3105 | sdev = res->sdev; |
3106 | if (!scsi_device_get(sdev)) { | 3106 | if (!scsi_device_get(sdev)) { |
3107 | list_move_tail(&res->queue, &ioa_cfg->free_res_q); | 3107 | if (!res->add_to_ml) |
3108 | list_move_tail(&res->queue, &ioa_cfg->free_res_q); | ||
3109 | else | ||
3110 | res->del_from_ml = 0; | ||
3108 | spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); | 3111 | spin_unlock_irqrestore(ioa_cfg->host->host_lock, lock_flags); |
3109 | scsi_remove_device(sdev); | 3112 | scsi_remove_device(sdev); |
3110 | scsi_device_put(sdev); | 3113 | scsi_device_put(sdev); |
@@ -8864,7 +8867,7 @@ static void __ipr_remove(struct pci_dev *pdev) | |||
8864 | 8867 | ||
8865 | spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags); | 8868 | spin_unlock_irqrestore(ioa_cfg->host->host_lock, host_lock_flags); |
8866 | wait_event(ioa_cfg->reset_wait_q, !ioa_cfg->in_reset_reload); | 8869 | wait_event(ioa_cfg->reset_wait_q, !ioa_cfg->in_reset_reload); |
8867 | flush_scheduled_work(); | 8870 | flush_work_sync(&ioa_cfg->work_q); |
8868 | spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags); | 8871 | spin_lock_irqsave(ioa_cfg->host->host_lock, host_lock_flags); |
8869 | 8872 | ||
8870 | spin_lock(&ipr_driver_lock); | 8873 | spin_lock(&ipr_driver_lock); |