Lines Matching defs:iocb

58 				  struct lpfc_iocbq *iocb);
135 * lpfc_prep_els_iocb - Allocate and prepare a lpfc iocb data structure
159 * Pointer to the newly allocated/prepared els iocb data structure
160 * NULL - when els iocb data structure allocation/preparation failed
177 /* Allocate buffer for command iocb */
922 * @cmdiocb: pointer to lpfc command iocb data structure.
923 * @rspiocb: pointer to lpfc response iocb data structure.
973 irsp = &rspiocb->iocb;
1236 * @cmdiocb: pointer to lpfc command iocb data structure.
1237 * @rspiocb: pointer to lpfc response iocb data structure.
1268 * lpfc_issue_els_flogi - Issue an flogi iocb command for a vport
1285 * 0 - successfully issued flogi iocb for @vport
1286 * 1 - failed to issue flogi iocb for @vport
1312 icmd = &elsiocb->iocb;
1429 icmd = &defer_flogi_acc.iocb;
1469 * 0 - Successfully issued abort iocb on all outstanding flogis (Always 0)
1475 struct lpfc_iocbq *iocb, *next_iocb;
1489 * Check the txcmplq for an iocb that matches the nport the driver is
1493 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) {
1494 ulp_command = get_job_cmnd(phba, iocb);
1496 ndlp = iocb->ndlp;
1500 iocb->fabric_cmd_cmpl =
1502 lpfc_sli_issue_abort_iotag(phba, pring, iocb,
1927 * @cmdiocb: pointer to lpfc command iocb data structure.
1928 * @rspiocb: pointer to lpfc response iocb data structure.
1985 * @cmdiocb: pointer to lpfc command iocb data structure.
1986 * @rspiocb: pointer to lpfc response iocb data structure.
2026 irsp = &rspiocb->iocb;
2173 * lpfc_issue_els_plogi - Issue an plogi iocb command for a vport
2304 * @cmdiocb: pointer to lpfc command iocb data structure.
2305 * @rspiocb: pointer to lpfc response iocb data structure.
2447 * lpfc_issue_els_prli - Issue a prli iocb command for a vport
2463 * 0 - successfully issued prli iocb command for @vport
2464 * 1 - failed to issue prli iocb command for @vport
2772 * @cmdiocb: pointer to lpfc command iocb data structure.
2773 * @rspiocb: pointer to lpfc response iocb data structure.
2807 irsp = &rspiocb->iocb;
2887 * lpfc_issue_els_adisc - Issue an address discover iocb to an node on a vport
2969 * @cmdiocb: pointer to lpfc command iocb data structure.
2970 * @rspiocb: pointer to lpfc response iocb data structure.
3000 irsp = &rspiocb->iocb;
3126 * This routine constructs and issues an ELS Logout (LOGO) iocb command
3212 * @cmdiocb: pointer to lpfc command iocb data structure.
3213 * @rspiocb: pointer to lpfc response iocb data structure.
3241 irsp = &rspiocb->iocb;
3349 * @cmdiocb: pointer to lpfc command iocb data structure.
3350 * @rspiocb: pointer to lpfc response iocb data structure.
3378 irsp = &rspiocb->iocb;
3847 * @cmdiocb: pointer to lpfc command iocb data structure.
3967 * @cmdiocb: pointer to lpfc command iocb data structure.
3968 * @rspiocb: pointer to lpfc response iocb data structure.
4004 irsp_iocb = &rspiocb->iocb;
4251 * @retry: retry counter for the command iocb.
4358 * lpfc_cancel_retry_delay_tmo - Cancel the timer with delayed iocb-cmd retry
4583 * lpfc_els_retry - Make retry decision on an els command iocb
4585 * @cmdiocb: pointer to lpfc command iocb data structure.
4586 * @rspiocb: pointer to lpfc response iocb data structure.
5073 * lpfc_els_free_data - Free lpfc dma buffer and data structure with an iocb
5125 * lpfc_els_free_iocb - Free a command iocb and its associated resources
5127 * @elsiocb: pointer to lpfc els command iocb data structure.
5156 /* The I/O iocb is complete. Clear the node and first dmbuf */
5205 * @cmdiocb: pointer to lpfc command iocb data structure.
5206 * @rspiocb: pointer to lpfc response iocb data structure.
5311 * lpfc_cmpl_els_rsp - Completion callback function for els response iocb cmd
5313 * @cmdiocb: pointer to lpfc command iocb data structure.
5314 * @rspiocb: pointer to lpfc response iocb data structure.
5350 irsp = &rspiocb->iocb;
5479 * lpfc_els_rsp_acc - Prepare and issue an acc response iocb command
5482 * @oldiocb: pointer to the original lpfc command iocb data structure.
5545 icmd = &elsiocb->iocb;
5546 oldcmd = &oldiocb->iocb;
5580 icmd = &elsiocb->iocb;
5581 oldcmd = &oldiocb->iocb;
5658 icmd = &elsiocb->iocb;
5659 oldcmd = &oldiocb->iocb;
5696 icmd = &elsiocb->iocb;
5697 oldcmd = &oldiocb->iocb;
5756 * lpfc_els_rsp_reject - Prepare and issue a rjt response iocb command
5759 * @oldiocb: pointer to the original lpfc command iocb data structure.
5804 icmd = &elsiocb->iocb;
5805 oldcmd = &oldiocb->iocb;
5864 * @cmdiocb: pointer to the original lpfc command iocb data structure.
5907 icmd = &elsiocb->iocb;
5908 cmd = &cmdiocb->iocb;
5963 * lpfc_els_rsp_adisc_acc - Prepare and issue acc response to adisc iocb cmd
5965 * @oldiocb: pointer to the original lpfc command iocb data structure.
6011 icmd = &elsiocb->iocb;
6012 oldcmd = &oldiocb->iocb;
6014 ulp_context = elsiocb->iocb.ulpContext;
6060 * lpfc_els_rsp_prli_acc - Prepare and issue acc response to prli iocb cmd
6062 * @oldiocb: pointer to the original lpfc command iocb data structure.
6133 icmd = &elsiocb->iocb;
6134 oldcmd = &oldiocb->iocb;
6136 ulp_context = elsiocb->iocb.ulpContext;
6252 * lpfc_els_rsp_rnid_acc - Issue rnid acc response iocb command
6255 * @oldiocb: pointer to the original lpfc command iocb data structure.
6303 icmd = &elsiocb->iocb;
6304 oldcmd = &oldiocb->iocb;
6306 ulp_context = elsiocb->iocb.ulpContext;
6368 * @iocb: pointer to the lpfc command iocb data structure.
6375 struct lpfc_iocbq *iocb, struct lpfc_nodelist *ndlp)
6385 pcmd = (uint8_t *)iocb->cmd_dmabuf->virt;
6397 get_wqe_reqtag(iocb),
6398 get_job_ulpcontext(phba, iocb));
6417 * @oldiocb: pointer to the original lpfc command iocb data structure.
6440 cmdsize = oldiocb->iocb.unsli3.rcvsli3.acc_len;
6460 icmd = &elsiocb->iocb;
6461 oldcmd = &oldiocb->iocb;
6463 ulp_context = elsiocb->iocb.ulpContext;
7097 icmd = &elsiocb->iocb;
7196 icmd = &elsiocb->iocb;
7391 * @cmdiocb: pointer to lpfc command iocb data structure.
7553 icmd = &elsiocb->iocb;
7598 icmd = &elsiocb->iocb;
7704 * @cmdiocb: pointer to lpfc command iocb data structure.
7958 * @cmdiocb: pointer to lpfc command iocb data structure.
7999 * lpfc_els_rcv_rscn - Process an unsolicited rscn iocb
8001 * @cmdiocb: pointer to lpfc command iocb data structure.
8305 * lpfc_els_rcv_flogi - Process an unsolicited flogi iocb
8307 * @cmdiocb: pointer to lpfc command iocb data structure.
8487 * lpfc_els_rcv_rnid - Process an unsolicited rnid iocb
8489 * @cmdiocb: pointer to lpfc command iocb data structure.
8500 * 0 - Successfully processed rnid iocb (currently always return 0)
8538 * lpfc_els_rcv_echo - Process an unsolicited echo iocb
8540 * @cmdiocb: pointer to lpfc command iocb data structure.
8544 * 0 - Successfully processed echo iocb (currently always return 0)
8562 * lpfc_els_rcv_lirr - Process an unsolicited lirr iocb
8564 * @cmdiocb: pointer to lpfc command iocb data structure.
8572 * 0 - Successfully processed lirr iocb (currently always return 0)
8590 * lpfc_els_rcv_rrq - Process an unsolicited rrq iocb
8592 * @cmdiocb: pointer to lpfc command iocb data structure.
8682 icmd = &elsiocb->iocb;
8723 * lpfc_els_rcv_rls - Process an unsolicited rls iocb
8725 * @cmdiocb: pointer to lpfc command iocb data structure.
8738 * 0 - Successfully processed rls iocb (currently always return 0)
8787 * lpfc_els_rcv_rtv - Process an unsolicited rtv iocb
8789 * @cmdiocb: pointer to lpfc command iocb data structure.
8805 * 0 - Successfully processed rtv iocb (currently always return 0)
8848 icmd = &elsiocb->iocb;
8896 /* lpfc_issue_els_rrq - Process an unsolicited rrq iocb
8906 * 0 - Successfully sent rrq els iocb.
8907 * 1 - Failed to send rrq els iocb.
8997 * @oldiocb: pointer to the original lpfc command iocb data structure.
9040 icmd = &elsiocb->iocb;
9086 * lpfc_els_rcv_rpl - Process an unsolicited rpl iocb
9088 * @cmdiocb: pointer to lpfc command iocb data structure.
9099 * 0 - Successfully processed rpl iocb (currently always return 0)
9146 * @cmdiocb: pointer to lpfc command iocb data structure.
9225 * lpfc_els_rcv_farpr - Process an unsolicited farp response iocb
9227 * @cmdiocb: pointer to lpfc command iocb data structure.
9256 * lpfc_els_rcv_fan - Process an unsolicited fan iocb command
9258 * @cmdiocb: pointer to lpfc command iocb data structure.
9272 * 0 - Successfully processed fan iocb (currently always return 0).
9311 * lpfc_els_rcv_edc - Process an unsolicited EDC iocb
9313 * @cmdiocb: pointer to lpfc command iocb data structure.
9317 * 0 - Successfully processed echo iocb (currently always return 0)
9517 cmd = &piocb->iocb;
9658 * change the compl routine to just clean up the iocb
9672 /* Abort each txcmpl iocb on aborted list and remove the dlist links. */
9776 * @cmdiocbp: Pointer to command iocb which reported error.
9777 * @rspiocbp: Pointer to response iocb which reported error.
10325 * @elsiocb: pointer to lpfc els command iocb data structure.
10355 payload_len = elsiocb->iocb.unsli3.rcvsli3.acc_len;
10808 * @elsiocb: pointer to lpfc els iocb data structure.
10813 * lpfc_els_unsol_buffer() after properly set up the iocb buffer from the
10839 bde_count = elsiocb->iocb.ulpBdeCount;
10854 icmd = &elsiocb->iocb;
10878 icmd = &elsiocb->iocb;
11243 * @cmdiocb: pointer to FDISC command iocb.
11244 * @rspiocb: pointer to FDISC response iocb.
11265 * lpfc_cmpl_els_fdisc - Completion function for fdisc iocb command
11267 * @cmdiocb: pointer to lpfc command iocb data structure.
11268 * @rspiocb: pointer to lpfc response iocb data structure.
11421 * lpfc_issue_els_fdisc - Issue a fdisc iocb command
11436 * 0 - Successfully issued fdisc iocb command
11437 * 1 - Failed to issue fdisc iocb command
11470 icmd = &elsiocb->iocb;
11533 * @cmdiocb: pointer to lpfc command iocb data structure.
11534 * @rspiocb: pointer to lpfc response iocb data structure.
11563 irsp = &rspiocb->iocb;
11676 * This routine is invoked by the fabric iocb block timer after
11677 * timeout. It posts the fabric iocb block timeout event by setting the
11702 * lpfc_resume_fabric_iocbs - Issue a fabric iocb from driver internal list
11705 * This routine issues one fabric iocb from the driver internal list to
11706 * the HBA. It first checks whether it's ready to issue one fabric iocb to
11707 * the HBA (whether there is no outstanding fabric iocb). If so, it shall
11708 * remove one pending fabric iocb from the driver internal list and invokes
11709 * lpfc_sli_issue_iocb() routine to send the fabric iocb to the HBA.
11714 struct lpfc_iocbq *iocb;
11719 iocb = NULL;
11721 /* Post any pending iocb to the SLI layer */
11723 list_remove_head(&phba->fabric_iocb_list, iocb, typeof(*iocb),
11725 if (iocb)
11726 /* Increment fabric iocb count to hold the position */
11730 if (iocb) {
11731 iocb->fabric_cmd_cmpl = iocb->cmd_cmpl;
11732 iocb->cmd_cmpl = lpfc_cmpl_fabric_iocb;
11733 iocb->cmd_flag |= LPFC_IO_FABRIC;
11735 lpfc_debugfs_disc_trc(iocb->vport, LPFC_DISC_TRC_ELS_CMD,
11737 iocb->vport->port_state, 0, 0);
11739 ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocb, 0);
11742 iocb->cmd_cmpl = iocb->fabric_cmd_cmpl;
11743 iocb->fabric_cmd_cmpl = NULL;
11744 iocb->cmd_flag &= ~LPFC_IO_FABRIC;
11745 set_job_ulpstatus(iocb, IOSTAT_LOCAL_REJECT);
11746 iocb->wcqe_cmpl.parameter = IOERR_SLI_ABORTED;
11747 iocb->cmd_cmpl(phba, iocb, iocb);
11756 * lpfc_unblock_fabric_iocbs - Unblock issuing fabric iocb command
11759 * This routine unblocks the issuing fabric iocb command. The function
11760 * will clear the fabric iocb block bit and then invoke the routine
11761 * lpfc_resume_fabric_iocbs() to issue one of the pending fabric iocb
11762 * from the driver internal fabric iocb list.
11774 * lpfc_block_fabric_iocbs - Block issuing fabric iocb command
11777 * This routine blocks the issuing fabric iocb for a specified amount of
11778 * time (currently 100 ms). This is done by set the fabric iocb block bit
11780 * fabric iocb will be issued out of the HBA.
11797 * lpfc_cmpl_fabric_iocb - Completion callback function for fabric iocb
11799 * @cmdiocb: pointer to lpfc command iocb data structure.
11800 * @rspiocb: pointer to lpfc response iocb data structure.
11802 * This routine is the callback function that is put to the fabric iocb's
11803 * callback function pointer (iocb->cmd_cmpl). The original iocb's callback
11804 * function pointer has been stored in iocb->fabric_cmd_cmpl. This callback
11805 * function first restores and invokes the original iocb's callback function
11807 * fabric bound iocb from the driver internal fabric iocb list onto the wire.
11855 * lpfc_issue_fabric_iocb - Issue a fabric iocb command
11857 * @iocb: pointer to lpfc command iocb data structure.
11859 * This routine is used as the top-level API for issuing a fabric iocb command
11861 * function makes sure that only one fabric bound iocb will be outstanding at
11863 * is already an outstanding fabric iocb on the wire. If so, it will put the
11864 * newly issued iocb onto the driver internal fabric iocb list, waiting to be
11865 * issued later. Otherwise, it will issue the iocb on the wire and update the
11866 * fabric iocb count it indicate that there is one fabric iocb on the wire.
11875 * IOCB_SUCCESS - either fabric iocb put on the list or issued successfully
11876 * IOCB_ERROR - failed to issue fabric iocb
11879 lpfc_issue_fabric_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *iocb)
11892 /* Increment fabric iocb count to hold the position */
11896 iocb->fabric_cmd_cmpl = iocb->cmd_cmpl;
11897 iocb->cmd_cmpl = lpfc_cmpl_fabric_iocb;
11898 iocb->cmd_flag |= LPFC_IO_FABRIC;
11900 lpfc_debugfs_disc_trc(iocb->vport, LPFC_DISC_TRC_ELS_CMD,
11902 iocb->vport->port_state, 0, 0);
11904 ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocb, 0);
11907 iocb->cmd_cmpl = iocb->fabric_cmd_cmpl;
11908 iocb->fabric_cmd_cmpl = NULL;
11909 iocb->cmd_flag &= ~LPFC_IO_FABRIC;
11914 list_add_tail(&iocb->list, &phba->fabric_iocb_list);
11922 * lpfc_fabric_abort_vport - Abort a vport's iocbs from driver fabric iocb list
11955 * lpfc_fabric_abort_nport - Abort a ndlp's iocbs from driver fabric iocb list
11993 * lpfc_fabric_abort_hba - Abort all iocbs on driver fabric iocb list