struct lpfc_hba *phba = vport->phba;
        struct lpfc_iocbq *iocbq;
        struct lpfc_iocbq *abtsiocb;
+       struct lpfc_sli_ring *pring_s4;
        IOCB_t *cmd = NULL;
        int errcnt = 0, ret_val = 0;
        int i;
 
                /* Setup callback routine and issue the command. */
                abtsiocb->iocb_cmpl = lpfc_sli_abort_fcp_cmpl;
-               ret_val = lpfc_sli_issue_iocb(phba, pring->ringno,
-                                             abtsiocb, 0);
+               if (phba->sli_rev == LPFC_SLI_REV4) {
+                       pring_s4 = lpfc_sli4_calc_ring(phba, iocbq);
+                       if (!pring_s4)
+                               continue;
+                       ret_val = lpfc_sli_issue_iocb(phba, pring_s4->ringno,
+                                                     abtsiocb, 0);
+               } else
+                       ret_val = lpfc_sli_issue_iocb(phba, pring->ringno,
+                                                     abtsiocb, 0);
                if (ret_val == IOCB_ERROR) {
                        lpfc_sli_release_iocbq(phba, abtsiocb);
                        errcnt++;