1629 if (pring->ringno == LPFC_ELS_RING) {
1630 if (cmdiocbp->iocb_flag & LPFC_DRIVER_ABORTED) {
1631 cmdiocbp->iocb_flag &=
1632 ~LPFC_DRIVER_ABORTED;
1633 saveq->iocb.ulpStatus =
1634 IOSTAT_LOCAL_REJECT;
1635 saveq->iocb.un.ulpWord[4] =
1636 IOERR_SLI_ABORTED;
1637
1638
1639
1640
1641
1642 saveq->iocb_flag |= LPFC_DELAY_MEM_FREE;
1643 }
1644 }
1645 (cmdiocbp->iocb_cmpl) (phba, cmdiocbp, saveq);
1646 } else
1647 lpfc_sli_release_iocbq(phba, cmdiocbp);
1648 } else {
1649
1650
1651
1652
1653
1654 if (pring->ringno != LPFC_ELS_RING) {
1655
1656
1657
1658
1659 lpfc_printf_vlog(cmdiocbp->vport, KERN_WARNING, LOG_SLI,
1660 "0322 Ring %d handler: "
1661 "unexpected completion IoTag x%x "
1662 "Data: x%x x%x x%x x%x\n",
1663 pring->ringno,
1664 saveq->iocb.ulpIoTag,
1665 saveq->iocb.ulpStatus,
1666 saveq->iocb.un.ulpWord[4],
1667 saveq->iocb.ulpCommand,
1668 saveq->iocb.ulpContext);
1669 }