diff options
| -rw-r--r-- | drivers/scsi/isci/remote_device.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/scsi/isci/remote_device.c b/drivers/scsi/isci/remote_device.c index 48765aa84328..a3a6487264ea 100644 --- a/drivers/scsi/isci/remote_device.c +++ b/drivers/scsi/isci/remote_device.c | |||
| @@ -243,8 +243,11 @@ enum sci_status isci_remote_device_terminate_requests( | |||
| 243 | idev->rnc.destination_state, | 243 | idev->rnc.destination_state, |
| 244 | ireq, ireq->flags); | 244 | ireq, ireq->flags); |
| 245 | } | 245 | } |
| 246 | spin_lock_irqsave(&ihost->scic_lock, flags); | ||
| 246 | clear_bit(IREQ_NO_AUTO_FREE_TAG, &ireq->flags); | 247 | clear_bit(IREQ_NO_AUTO_FREE_TAG, &ireq->flags); |
| 247 | isci_free_tag(ihost, ireq->io_tag); | 248 | if (!test_bit(IREQ_ABORT_PATH_ACTIVE, &ireq->flags)) |
| 249 | isci_free_tag(ihost, ireq->io_tag); | ||
| 250 | spin_unlock_irqrestore(&ihost->scic_lock, flags); | ||
| 248 | } else { | 251 | } else { |
| 249 | /* Terminate all TCs. */ | 252 | /* Terminate all TCs. */ |
| 250 | sci_remote_device_terminate_requests(idev); | 253 | sci_remote_device_terminate_requests(idev); |
