diff options
author | Vikas Chaudhary <vikas.chaudhary@qlogic.com> | 2010-04-28 02:12:24 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-05-02 15:40:12 -0400 |
commit | 09a0f719896659a6c32df11426e55795012c06ff (patch) | |
tree | d80dce19cc98f247970c98a0b003fa1f97f98764 /drivers/scsi/qla4xxx/ql4_isr.c | |
parent | 5369887a95da9509163931b21f61a94da09dac15 (diff) |
[SCSI] qla4xxx: added support for abort task management command
* Handles SCSI command aborts.
* Serialization srb between error handler and command
completion path.
Signed-off-by: Vikas Chaudhary <vikas.chaudhary@qlogic.com>
Signed-off-by: Ravi Anand <ravi.anand@qlogic.com>
Reviewed-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/qla4xxx/ql4_isr.c')
-rw-r--r-- | drivers/scsi/qla4xxx/ql4_isr.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/scsi/qla4xxx/ql4_isr.c b/drivers/scsi/qla4xxx/ql4_isr.c index ce5838eb685e..596c3031483c 100644 --- a/drivers/scsi/qla4xxx/ql4_isr.c +++ b/drivers/scsi/qla4xxx/ql4_isr.c | |||
@@ -97,7 +97,7 @@ qla4xxx_status_cont_entry(struct scsi_qla_host *ha, | |||
97 | 97 | ||
98 | /* Place command on done queue. */ | 98 | /* Place command on done queue. */ |
99 | if (srb->req_sense_len == 0) { | 99 | if (srb->req_sense_len == 0) { |
100 | qla4xxx_srb_compl(ha, srb); | 100 | kref_put(&srb->srb_ref, qla4xxx_srb_compl); |
101 | ha->status_srb = NULL; | 101 | ha->status_srb = NULL; |
102 | } | 102 | } |
103 | } | 103 | } |
@@ -329,7 +329,7 @@ status_entry_exit: | |||
329 | /* complete the request, if not waiting for status_continuation pkt */ | 329 | /* complete the request, if not waiting for status_continuation pkt */ |
330 | srb->cc_stat = sts_entry->completionStatus; | 330 | srb->cc_stat = sts_entry->completionStatus; |
331 | if (ha->status_srb == NULL) | 331 | if (ha->status_srb == NULL) |
332 | qla4xxx_srb_compl(ha, srb); | 332 | kref_put(&srb->srb_ref, qla4xxx_srb_compl); |
333 | } | 333 | } |
334 | 334 | ||
335 | /** | 335 | /** |
@@ -393,7 +393,7 @@ static void qla4xxx_process_response_queue(struct scsi_qla_host * ha) | |||
393 | /* ETRY normally by sending it back with | 393 | /* ETRY normally by sending it back with |
394 | * DID_BUS_BUSY */ | 394 | * DID_BUS_BUSY */ |
395 | srb->cmd->result = DID_BUS_BUSY << 16; | 395 | srb->cmd->result = DID_BUS_BUSY << 16; |
396 | qla4xxx_srb_compl(ha, srb); | 396 | kref_put(&srb->srb_ref, qla4xxx_srb_compl); |
397 | break; | 397 | break; |
398 | 398 | ||
399 | case ET_CONTINUE: | 399 | case ET_CONTINUE: |