• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/src/linux/linux-2.6/drivers/scsi/lpfc/

Lines Matching refs:iocb

81 	size_t start_clean = (size_t)(&((struct lpfc_iocbq *)NULL)->iocb);
91 * Translate the iocb command to an iocb command type used to decide the final
235 IOCB_t *iocb = NULL;
269 iocb = IOCB_ENTRY(pring->cmdringaddr, pring->cmdidx);
271 return iocb;
342 IOCB_t *iocb, struct lpfc_iocbq *nextiocb)
347 nextiocb->iocb.ulpIoTag = (nextiocb->iocb_cmpl) ? nextiocb->iotag : 0;
350 * Issue iocb command to adapter
352 lpfc_sli_pcimem_bcopy(&nextiocb->iocb, iocb, sizeof (IOCB_t));
412 IOCB_t *iocb;
428 while ((iocb = lpfc_sli_next_iocb_slot(phba, pring)) &&
430 lpfc_sli_submit_iocb(phba, pring, iocb, nextiocb);
432 if (iocb)
736 irsp = &(saveq->iocb);
743 (WORD5 *) & (saveq->iocb.un.
804 iotag = prspiocb->iocb.ulpIoTag;
818 *(((uint32_t *) &prspiocb->iocb) + 7));
843 saveq->iocb.ulpStatus =
845 saveq->iocb.un.ulpWord[4] =
879 saveq->iocb.ulpIoTag,
880 saveq->iocb.ulpStatus,
881 saveq->iocb.un.ulpWord[4],
882 saveq->iocb.ulpCommand,
883 saveq->iocb.ulpContext);
961 (uint32_t *) &rspiocbq.iocb,
963 irsp = &rspiocbq.iocb;
988 * Idle exchange closed via ABTS from port. No iocb
1118 (uint32_t *) &rspiocbq.iocb,
1121 irsp = &rspiocbq.iocb;
1144 * Idle exchange closed via ABTS from port. No iocb
1289 * The process is to get the next available response iocb, get
1290 * a free iocb from the list, copy the response data into the
1291 * free iocb, insert to the continuation list, and update the
1293 * iocb's in the ring available to DMA as fast as possible but
1294 * pays a penalty for a copy operation. Since the iocb is
1308 lpfc_sli_pcimem_bcopy(entry, &rspiocbp->iocb, sizeof (IOCB_t));
1309 irsp = &rspiocbp->iocb;
1329 * associated with this iocb completion.
1334 irsp = &(saveq->iocb);
1480 struct lpfc_iocbq *iocb, *next_iocb;
1494 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list)
1495 lpfc_sli_issue_abort_iotag(phba, pring, iocb);
1500 iocb = list_get_first(&completions, struct lpfc_iocbq, list);
1501 cmd = &iocb->iocb;
1502 list_del(&iocb->list);
1504 if (iocb->iocb_cmpl) {
1507 (iocb->iocb_cmpl) (phba, iocb, iocb);
1509 lpfc_sli_release_iocbq(phba, iocb);
2365 /* Insert the caller's iocb in the txq tail for later processing. */
2391 IOCB_t *iocb;
2415 switch (piocb->iocb.ulpCommand) {
2441 while ((iocb = lpfc_sli_next_iocb_slot(phba, pring)) &&
2443 lpfc_sli_submit_iocb(phba, pring, iocb, nextiocb);
2445 if (iocb)
2476 /* Adjust cmd/rsp ring iocb entries more evenly */
2625 struct lpfc_iocbq *iocb;
2649 iocb = list_get_first(&completions, struct lpfc_iocbq, list);
2650 cmd = &iocb->iocb;
2651 list_del(&iocb->list);
2653 if (iocb->iocb_cmpl) {
2656 (iocb->iocb_cmpl) (phba, iocb, iocb);
2658 lpfc_sli_release_iocbq(phba, iocb);
2758 irsp = &rspiocb->iocb;
2763 abort_context = cmdiocb->iocb.un.acxri.abortContextTag;
2764 abort_iotag = cmdiocb->iocb.un.acxri.abortIoTag;
2770 "%d:0327 Cannot abort els iocb %p"
2780 abort_iocb->iocb.ulpContext == abort_context &&
2791 rsp_ab_iocb->iocb.ulpStatus =
2793 rsp_ab_iocb->iocb.un.ulpWord[4] =
2822 icmd = &cmdiocb->iocb;
2828 * need to cleanup the iocb here.
2843 iabt = &abtsiocbp->iocb;
2866 /* If we could not issue an abort dequeue the iocb and handle
2915 if (iocbq->iocb.ulpContext == ctx)
2985 cmd = &iocbq->iocb;
2986 abtsiocb->iocb.un.acxri.abortType = ABORT_TYPE_ABTS;
2987 abtsiocb->iocb.un.acxri.abortContextTag = cmd->ulpContext;
2988 abtsiocb->iocb.un.acxri.abortIoTag = cmd->ulpIoTag;
2989 abtsiocb->iocb.ulpLe = 1;
2990 abtsiocb->iocb.ulpClass = cmd->ulpClass;
2993 abtsiocb->iocb.ulpCommand = CMD_ABORT_XRI_CN;
2995 abtsiocb->iocb.ulpCommand = CMD_CLOSE_XRI_CN;
3021 memcpy(&((struct lpfc_iocbq *)cmdiocbq->context2)->iocb,
3022 &rspiocbq->iocb, sizeof(IOCB_t));
3032 * Issue the caller's iocb and wait for its completion, but no longer than the