Loading drivers/scsi/lpfc/lpfc_scsi.c +3 −0 Original line number Diff line number Diff line Loading @@ -4886,6 +4886,9 @@ lpfc_abort_handler(struct scsi_cmnd *cmnd) goto out_unlock; } /* Indicate the IO is being aborted by the driver. */ iocb->iocb_flag |= LPFC_DRIVER_ABORTED; /* * The scsi command can not be in txq and it is in flight because the * pCmd is still pointig at the SCSI command we have to abort. There Loading drivers/scsi/lpfc/lpfc_sli.c +11 −1 Original line number Diff line number Diff line Loading @@ -9831,6 +9831,13 @@ lpfc_sli_abort_iocb(struct lpfc_vport *vport, struct lpfc_sli_ring *pring, abort_cmd) != 0) continue; /* * If the iocbq is already being aborted, don't take a second * action, but do count it. */ if (iocbq->iocb_flag & LPFC_DRIVER_ABORTED) continue; /* issue ABTS for this IOCB based on iotag */ abtsiocb = lpfc_sli_get_iocbq(phba); if (abtsiocb == NULL) { Loading @@ -9838,6 +9845,9 @@ lpfc_sli_abort_iocb(struct lpfc_vport *vport, struct lpfc_sli_ring *pring, continue; } /* indicate the IO is being aborted by the driver. */ iocbq->iocb_flag |= LPFC_DRIVER_ABORTED; cmd = &iocbq->iocb; abtsiocb->iocb.un.acxri.abortType = ABORT_TYPE_ABTS; abtsiocb->iocb.un.acxri.abortContextTag = cmd->ulpContext; Loading @@ -9847,7 +9857,7 @@ lpfc_sli_abort_iocb(struct lpfc_vport *vport, struct lpfc_sli_ring *pring, abtsiocb->iocb.un.acxri.abortIoTag = cmd->ulpIoTag; abtsiocb->iocb.ulpLe = 1; abtsiocb->iocb.ulpClass = cmd->ulpClass; abtsiocb->vport = phba->pport; abtsiocb->vport = vport; /* ABTS WQE must go to the same WQ as the WQE to be aborted */ abtsiocb->fcp_wqidx = iocbq->fcp_wqidx; Loading Loading
drivers/scsi/lpfc/lpfc_scsi.c +3 −0 Original line number Diff line number Diff line Loading @@ -4886,6 +4886,9 @@ lpfc_abort_handler(struct scsi_cmnd *cmnd) goto out_unlock; } /* Indicate the IO is being aborted by the driver. */ iocb->iocb_flag |= LPFC_DRIVER_ABORTED; /* * The scsi command can not be in txq and it is in flight because the * pCmd is still pointig at the SCSI command we have to abort. There Loading
drivers/scsi/lpfc/lpfc_sli.c +11 −1 Original line number Diff line number Diff line Loading @@ -9831,6 +9831,13 @@ lpfc_sli_abort_iocb(struct lpfc_vport *vport, struct lpfc_sli_ring *pring, abort_cmd) != 0) continue; /* * If the iocbq is already being aborted, don't take a second * action, but do count it. */ if (iocbq->iocb_flag & LPFC_DRIVER_ABORTED) continue; /* issue ABTS for this IOCB based on iotag */ abtsiocb = lpfc_sli_get_iocbq(phba); if (abtsiocb == NULL) { Loading @@ -9838,6 +9845,9 @@ lpfc_sli_abort_iocb(struct lpfc_vport *vport, struct lpfc_sli_ring *pring, continue; } /* indicate the IO is being aborted by the driver. */ iocbq->iocb_flag |= LPFC_DRIVER_ABORTED; cmd = &iocbq->iocb; abtsiocb->iocb.un.acxri.abortType = ABORT_TYPE_ABTS; abtsiocb->iocb.un.acxri.abortContextTag = cmd->ulpContext; Loading @@ -9847,7 +9857,7 @@ lpfc_sli_abort_iocb(struct lpfc_vport *vport, struct lpfc_sli_ring *pring, abtsiocb->iocb.un.acxri.abortIoTag = cmd->ulpIoTag; abtsiocb->iocb.ulpLe = 1; abtsiocb->iocb.ulpClass = cmd->ulpClass; abtsiocb->vport = phba->pport; abtsiocb->vport = vport; /* ABTS WQE must go to the same WQ as the WQE to be aborted */ abtsiocb->fcp_wqidx = iocbq->fcp_wqidx; Loading