Lines Matching defs:iocb

58 				  struct lpfc_iocbq *iocb);
141 * lpfc_prep_els_iocb - Allocate and prepare a lpfc iocb data structure
165 * Pointer to the newly allocated/prepared els iocb data structure
166 * NULL - when els iocb data structure allocation/preparation failed
183 /* Allocate buffer for command iocb */
904 * @cmdiocb: pointer to lpfc command iocb data structure.
905 * @rspiocb: pointer to lpfc response iocb data structure.
954 irsp = &rspiocb->iocb;
1217 * @cmdiocb: pointer to lpfc command iocb data structure.
1218 * @rspiocb: pointer to lpfc response iocb data structure.
1249 * lpfc_issue_els_flogi - Issue an flogi iocb command for a vport
1266 * 0 - successfully issued flogi iocb for @vport
1267 * 1 - failed to issue flogi iocb for @vport
1293 icmd = &elsiocb->iocb;
1412 icmd = &defer_flogi_acc.iocb;
1452 * 0 - Successfully issued abort iocb on all outstanding flogis (Always 0)
1458 struct lpfc_iocbq *iocb, *next_iocb;
1472 * Check the txcmplq for an iocb that matches the nport the driver is
1476 list_for_each_entry_safe(iocb, next_iocb, &pring->txcmplq, list) {
1477 ulp_command = get_job_cmnd(phba, iocb);
1479 ndlp = iocb->ndlp;
1484 iocb->fabric_cmd_cmpl =
1486 lpfc_sli_issue_abort_iotag(phba, pring, iocb,
1923 * @cmdiocb: pointer to lpfc command iocb data structure.
1924 * @rspiocb: pointer to lpfc response iocb data structure.
1981 * @cmdiocb: pointer to lpfc command iocb data structure.
1982 * @rspiocb: pointer to lpfc response iocb data structure.
2021 irsp = &rspiocb->iocb;
2171 * lpfc_issue_els_plogi - Issue an plogi iocb command for a vport
2303 * @cmdiocb: pointer to lpfc command iocb data structure.
2304 * @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
2770 * @cmdiocb: pointer to lpfc command iocb data structure.
2771 * @rspiocb: pointer to lpfc response iocb data structure.
2806 irsp = &rspiocb->iocb;
2889 * lpfc_issue_els_adisc - Issue an address discover iocb to an node on a vport
2971 * @cmdiocb: pointer to lpfc command iocb data structure.
2972 * @rspiocb: pointer to lpfc response iocb data structure.
3003 irsp = &rspiocb->iocb;
3132 * This routine constructs and issues an ELS Logout (LOGO) iocb command
3218 * @cmdiocb: pointer to lpfc command iocb data structure.
3219 * @rspiocb: pointer to lpfc response iocb data structure.
3247 irsp = &rspiocb->iocb;
3355 * @cmdiocb: pointer to lpfc command iocb data structure.
3356 * @rspiocb: pointer to lpfc response iocb data structure.
3384 irsp = &rspiocb->iocb;
3855 * @cmdiocb: pointer to lpfc command iocb data structure.
3975 * @cmdiocb: pointer to lpfc command iocb data structure.
3976 * @rspiocb: pointer to lpfc response iocb data structure.
4012 irsp_iocb = &rspiocb->iocb;
4262 * @retry: retry counter for the command iocb.
4369 * lpfc_cancel_retry_delay_tmo - Cancel the timer with delayed iocb-cmd retry
4592 * lpfc_els_retry - Make retry decision on an els command iocb
4594 * @cmdiocb: pointer to lpfc command iocb data structure.
4595 * @rspiocb: pointer to lpfc response iocb data structure.
5085 * lpfc_els_free_data - Free lpfc dma buffer and data structure with an iocb
5137 * lpfc_els_free_iocb - Free a command iocb and its associated resources
5139 * @elsiocb: pointer to lpfc els command iocb data structure.
5168 /* The I/O iocb is complete. Clear the node and first dmbuf */
5217 * @cmdiocb: pointer to lpfc command iocb data structure.
5218 * @rspiocb: pointer to lpfc response iocb data structure.
5323 * lpfc_cmpl_els_rsp - Completion callback function for els response iocb cmd
5325 * @cmdiocb: pointer to lpfc command iocb data structure.
5326 * @rspiocb: pointer to lpfc response iocb data structure.
5362 irsp = &rspiocb->iocb;
5491 * lpfc_els_rsp_acc - Prepare and issue an acc response iocb command
5494 * @oldiocb: pointer to the original lpfc command iocb data structure.
5557 icmd = &elsiocb->iocb;
5558 oldcmd = &oldiocb->iocb;
5592 icmd = &elsiocb->iocb;
5593 oldcmd = &oldiocb->iocb;
5670 icmd = &elsiocb->iocb;
5671 oldcmd = &oldiocb->iocb;
5708 icmd = &elsiocb->iocb;
5709 oldcmd = &oldiocb->iocb;
5768 * lpfc_els_rsp_reject - Prepare and issue a rjt response iocb command
5771 * @oldiocb: pointer to the original lpfc command iocb data structure.
5816 icmd = &elsiocb->iocb;
5817 oldcmd = &oldiocb->iocb;
5876 * @cmdiocb: pointer to the original lpfc command iocb data structure.
5919 icmd = &elsiocb->iocb;
5920 cmd = &cmdiocb->iocb;
5975 * lpfc_els_rsp_adisc_acc - Prepare and issue acc response to adisc iocb cmd
5977 * @oldiocb: pointer to the original lpfc command iocb data structure.
6023 icmd = &elsiocb->iocb;
6024 oldcmd = &oldiocb->iocb;
6026 ulp_context = elsiocb->iocb.ulpContext;
6072 * lpfc_els_rsp_prli_acc - Prepare and issue acc response to prli iocb cmd
6074 * @oldiocb: pointer to the original lpfc command iocb data structure.
6145 icmd = &elsiocb->iocb;
6146 oldcmd = &oldiocb->iocb;
6148 ulp_context = elsiocb->iocb.ulpContext;
6264 * lpfc_els_rsp_rnid_acc - Issue rnid acc response iocb command
6267 * @oldiocb: pointer to the original lpfc command iocb data structure.
6315 icmd = &elsiocb->iocb;
6316 oldcmd = &oldiocb->iocb;
6318 ulp_context = elsiocb->iocb.ulpContext;
6380 * @iocb: pointer to the lpfc command iocb data structure.
6387 struct lpfc_iocbq *iocb, struct lpfc_nodelist *ndlp)
6397 pcmd = (uint8_t *)iocb->cmd_dmabuf->virt;
6409 get_wqe_reqtag(iocb),
6410 get_job_ulpcontext(phba, iocb));
6429 * @oldiocb: pointer to the original lpfc command iocb data structure.
6452 cmdsize = oldiocb->iocb.unsli3.rcvsli3.acc_len;
6472 icmd = &elsiocb->iocb;
6473 oldcmd = &oldiocb->iocb;
6475 ulp_context = elsiocb->iocb.ulpContext;
7096 icmd = &elsiocb->iocb;
7195 icmd = &elsiocb->iocb;
7388 * @cmdiocb: pointer to lpfc command iocb data structure.
7551 icmd = &elsiocb->iocb;
7596 icmd = &elsiocb->iocb;
7702 * @cmdiocb: pointer to lpfc command iocb data structure.
7957 * @cmdiocb: pointer to lpfc command iocb data structure.
7998 * lpfc_els_rcv_rscn - Process an unsolicited rscn iocb
8000 * @cmdiocb: pointer to lpfc command iocb data structure.
8300 * lpfc_els_rcv_flogi - Process an unsolicited flogi iocb
8302 * @cmdiocb: pointer to lpfc command iocb data structure.
8480 * lpfc_els_rcv_rnid - Process an unsolicited rnid iocb
8482 * @cmdiocb: pointer to lpfc command iocb data structure.
8493 * 0 - Successfully processed rnid iocb (currently always return 0)
8531 * lpfc_els_rcv_echo - Process an unsolicited echo iocb
8533 * @cmdiocb: pointer to lpfc command iocb data structure.
8537 * 0 - Successfully processed echo iocb (currently always return 0)
8555 * lpfc_els_rcv_lirr - Process an unsolicited lirr iocb
8557 * @cmdiocb: pointer to lpfc command iocb data structure.
8565 * 0 - Successfully processed lirr iocb (currently always return 0)
8583 * lpfc_els_rcv_rrq - Process an unsolicited rrq iocb
8585 * @cmdiocb: pointer to lpfc command iocb data structure.
8675 icmd = &elsiocb->iocb;
8716 * lpfc_els_rcv_rls - Process an unsolicited rls iocb
8718 * @cmdiocb: pointer to lpfc command iocb data structure.
8731 * 0 - Successfully processed rls iocb (currently always return 0)
8779 * lpfc_els_rcv_rtv - Process an unsolicited rtv iocb
8781 * @cmdiocb: pointer to lpfc command iocb data structure.
8797 * 0 - Successfully processed rtv iocb (currently always return 0)
8840 icmd = &elsiocb->iocb;
8888 /* lpfc_issue_els_rrq - Process an unsolicited rrq iocb
8898 * 0 - Successfully sent rrq els iocb.
8899 * 1 - Failed to send rrq els iocb.
8989 * @oldiocb: pointer to the original lpfc command iocb data structure.
9032 icmd = &elsiocb->iocb;
9078 * lpfc_els_rcv_rpl - Process an unsolicited rpl iocb
9080 * @cmdiocb: pointer to lpfc command iocb data structure.
9091 * 0 - Successfully processed rpl iocb (currently always return 0)
9138 * @cmdiocb: pointer to lpfc command iocb data structure.
9217 * lpfc_els_rcv_farpr - Process an unsolicited farp response iocb
9219 * @cmdiocb: pointer to lpfc command iocb data structure.
9248 * lpfc_els_rcv_fan - Process an unsolicited fan iocb command
9250 * @cmdiocb: pointer to lpfc command iocb data structure.
9264 * 0 - Successfully processed fan iocb (currently always return 0).
9303 * lpfc_els_rcv_edc - Process an unsolicited EDC iocb
9305 * @cmdiocb: pointer to lpfc command iocb data structure.
9309 * 0 - Successfully processed echo iocb (currently always return 0)
9509 cmd = &piocb->iocb;
9650 * change the compl routine to just clean up the iocb
9664 /* Abort each txcmpl iocb on aborted list and remove the dlist links. */
9768 * @cmdiocbp: Pointer to command iocb which reported error.
9769 * @rspiocbp: Pointer to response iocb which reported error.
10320 * @elsiocb: pointer to lpfc els command iocb data structure.
10350 payload_len = elsiocb->iocb.unsli3.rcvsli3.acc_len;
10803 * @elsiocb: pointer to lpfc els iocb data structure.
10808 * lpfc_els_unsol_buffer() after properly set up the iocb buffer from the
10834 bde_count = elsiocb->iocb.ulpBdeCount;
10849 icmd = &elsiocb->iocb;
10873 icmd = &elsiocb->iocb;
11224 * @cmdiocb: pointer to FDISC command iocb.
11225 * @rspiocb: pointer to FDISC response iocb.
11246 * lpfc_cmpl_els_fdisc - Completion function for fdisc iocb command
11248 * @cmdiocb: pointer to lpfc command iocb data structure.
11249 * @rspiocb: pointer to lpfc response iocb data structure.
11400 * lpfc_issue_els_fdisc - Issue a fdisc iocb command
11415 * 0 - Successfully issued fdisc iocb command
11416 * 1 - Failed to issue fdisc iocb command
11449 icmd = &elsiocb->iocb;
11512 * @cmdiocb: pointer to lpfc command iocb data structure.
11513 * @rspiocb: pointer to lpfc response iocb data structure.
11541 irsp = &rspiocb->iocb;
11652 * This routine is invoked by the fabric iocb block timer after
11653 * timeout. It posts the fabric iocb block timeout event by setting the
11678 * lpfc_resume_fabric_iocbs - Issue a fabric iocb from driver internal list
11681 * This routine issues one fabric iocb from the driver internal list to
11682 * the HBA. It first checks whether it's ready to issue one fabric iocb to
11683 * the HBA (whether there is no outstanding fabric iocb). If so, it shall
11684 * remove one pending fabric iocb from the driver internal list and invokes
11685 * lpfc_sli_issue_iocb() routine to send the fabric iocb to the HBA.
11690 struct lpfc_iocbq *iocb;
11695 iocb = NULL;
11697 /* Post any pending iocb to the SLI layer */
11699 list_remove_head(&phba->fabric_iocb_list, iocb, typeof(*iocb),
11701 if (iocb)
11702 /* Increment fabric iocb count to hold the position */
11706 if (iocb) {
11707 iocb->fabric_cmd_cmpl = iocb->cmd_cmpl;
11708 iocb->cmd_cmpl = lpfc_cmpl_fabric_iocb;
11709 iocb->cmd_flag |= LPFC_IO_FABRIC;
11711 lpfc_debugfs_disc_trc(iocb->vport, LPFC_DISC_TRC_ELS_CMD,
11713 iocb->vport->port_state, 0, 0);
11715 ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocb, 0);
11718 iocb->cmd_cmpl = iocb->fabric_cmd_cmpl;
11719 iocb->fabric_cmd_cmpl = NULL;
11720 iocb->cmd_flag &= ~LPFC_IO_FABRIC;
11721 set_job_ulpstatus(iocb, IOSTAT_LOCAL_REJECT);
11722 iocb->wcqe_cmpl.parameter = IOERR_SLI_ABORTED;
11723 iocb->cmd_cmpl(phba, iocb, iocb);
11732 * lpfc_unblock_fabric_iocbs - Unblock issuing fabric iocb command
11735 * This routine unblocks the issuing fabric iocb command. The function
11736 * will clear the fabric iocb block bit and then invoke the routine
11737 * lpfc_resume_fabric_iocbs() to issue one of the pending fabric iocb
11738 * from the driver internal fabric iocb list.
11750 * lpfc_block_fabric_iocbs - Block issuing fabric iocb command
11753 * This routine blocks the issuing fabric iocb for a specified amount of
11754 * time (currently 100 ms). This is done by set the fabric iocb block bit
11756 * fabric iocb will be issued out of the HBA.
11773 * lpfc_cmpl_fabric_iocb - Completion callback function for fabric iocb
11775 * @cmdiocb: pointer to lpfc command iocb data structure.
11776 * @rspiocb: pointer to lpfc response iocb data structure.
11778 * This routine is the callback function that is put to the fabric iocb's
11779 * callback function pointer (iocb->cmd_cmpl). The original iocb's callback
11780 * function pointer has been stored in iocb->fabric_cmd_cmpl. This callback
11781 * function first restores and invokes the original iocb's callback function
11783 * fabric bound iocb from the driver internal fabric iocb list onto the wire.
11831 * lpfc_issue_fabric_iocb - Issue a fabric iocb command
11833 * @iocb: pointer to lpfc command iocb data structure.
11835 * This routine is used as the top-level API for issuing a fabric iocb command
11837 * function makes sure that only one fabric bound iocb will be outstanding at
11839 * is already an outstanding fabric iocb on the wire. If so, it will put the
11840 * newly issued iocb onto the driver internal fabric iocb list, waiting to be
11841 * issued later. Otherwise, it will issue the iocb on the wire and update the
11842 * fabric iocb count it indicate that there is one fabric iocb on the wire.
11851 * IOCB_SUCCESS - either fabric iocb put on the list or issued successfully
11852 * IOCB_ERROR - failed to issue fabric iocb
11855 lpfc_issue_fabric_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *iocb)
11868 /* Increment fabric iocb count to hold the position */
11872 iocb->fabric_cmd_cmpl = iocb->cmd_cmpl;
11873 iocb->cmd_cmpl = lpfc_cmpl_fabric_iocb;
11874 iocb->cmd_flag |= LPFC_IO_FABRIC;
11876 lpfc_debugfs_disc_trc(iocb->vport, LPFC_DISC_TRC_ELS_CMD,
11878 iocb->vport->port_state, 0, 0);
11880 ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocb, 0);
11883 iocb->cmd_cmpl = iocb->fabric_cmd_cmpl;
11884 iocb->fabric_cmd_cmpl = NULL;
11885 iocb->cmd_flag &= ~LPFC_IO_FABRIC;
11890 list_add_tail(&iocb->list, &phba->fabric_iocb_list);
11898 * lpfc_fabric_abort_vport - Abort a vport's iocbs from driver fabric iocb list
11931 * lpfc_fabric_abort_nport - Abort a ndlp's iocbs from driver fabric iocb list
11969 * lpfc_fabric_abort_hba - Abort all iocbs on driver fabric iocb list