OSDN Git Service

[SCSI] qla2xxx: Set the index in outstanding command array to NULL when cmd is aborte...
authorGiridhar Malavali <giridhar.malavali@qlogic.com>
Tue, 25 Jun 2013 15:27:17 +0000 (11:27 -0400)
committerJames Bottomley <JBottomley@Parallels.com>
Mon, 8 Jul 2013 16:16:29 +0000 (17:16 +0100)
Call the generic BSG free routine to unmap the DMA buffers.

Signed-off-by: Giridhar Malavali <giridhar.malavali@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/qla2xxx/qla_bsg.c

index 39719f8..5ba0cc1 100644 (file)
@@ -2153,6 +2153,7 @@ qla24xx_bsg_timeout(struct fc_bsg_job *bsg_job)
                                        (sp->type == SRB_ELS_CMD_HST) ||
                                        (sp->type == SRB_FXIOCB_BCMD))
                                        && (sp->u.bsg_job == bsg_job)) {
+                                       req->outstanding_cmds[cnt] = NULL;
                                        spin_unlock_irqrestore(&ha->hardware_lock, flags);
                                        if (ha->isp_ops->abort_command(sp)) {
                                                ql_log(ql_log_warn, vha, 0x7089,
@@ -2180,8 +2181,6 @@ qla24xx_bsg_timeout(struct fc_bsg_job *bsg_job)
 
 done:
        spin_unlock_irqrestore(&ha->hardware_lock, flags);
-       if (bsg_job->request->msgcode == FC_BSG_HST_CT)
-               kfree(sp->fcport);
-       qla2x00_rel_sp(vha, sp);
+       sp->free(vha, sp);
        return 0;
 }