lpfc_sli4_next_xritag(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ lpfc_sli4_next_xritag ✨

okay so this is a section 9 kernel API page, bestie β€” it's from the kernel API manual, and it's literally just one tiny function that hands out xritags. short page, big squad of friends (you'll see in SEE ALSO, it's giving family reunion 😭).


🌸 NAME 🌸

lpfc_sli4_next_xritag β€” get an xritag for the io πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

uint16_t lpfc_sli4_next_xritag (struct lpfc_hba *phba );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • phba β€” pointer to the HBA context object. that's it, that's the whole vibe 🫢

⭐ DESCRIPTION ⭐

ok so here's the tea β˜• β€” this function gets an xritag for the iocb. that's its whole job. main character energy, honestly.

if there's no unused xritag left to give? it returns 0xffff. like sorry bestie, sold out πŸ’€.

the function returns the allocated xritag if it succeeds β€” else it returns zero. and listen, zero is not a valid xritag, so if you see a 0 you know something went sideways, no cap.

also good news: the caller is not required to hold any lock. so no awkward lock drama, we love a low-maintenance function ✨.


πŸ’œ SEE ALSO πŸ’œ

the kernel file is ./drivers/scsi/lpfc/lpfc_sli.c, and here's the entire squad, in order, no gatekeeping πŸ’–:

lpfc_sli4_pcimem_bcopy(9), lpfc_sli4_wq_put(9), lpfc_sli4_wq_release(9),
lpfc_sli4_mq_put(9), lpfc_sli4_mq_release(9), lpfc_sli4_eq_get(9),
lpfc_sli4_eq_clr_intr(9), lpfc_sli4_if6_eq_clr_intr(9),
lpfc_sli4_write_eq_db(9), lpfc_sli4_if6_write_eq_db(9), lpfc_sli4_cq_get(9),
lpfc_sli4_write_cq_db(9), lpfc_sli4_if6_write_cq_db(9), lpfc_cmd_iocb(9),
lpfc_resp_iocb(9), __lpfc_sli_get_iocbq(9), __lpfc_clear_active_sglq(9),
__lpfc_get_active_sglq(9), lpfc_clr_rrq_active(9), lpfc_handle_rrq_active(9),
lpfc_get_active_rrq(9), lpfc_cleanup_vports_rrqs(9), lpfc_test_rrq_active(9),
lpfc_set_rrq_active(9), __lpfc_sli_get_els_sglq(9),
__lpfc_sli_get_nvmet_sglq(9), lpfc_sli_get_iocbq(9),
__lpfc_sli_release_iocbq_s4(9), __lpfc_sli_release_iocbq_s3(9),
__lpfc_sli_release_iocbq(9), lpfc_sli_release_iocbq(9),
lpfc_sli_cancel_iocbs(9), lpfc_sli_iocb_cmd_type(9), lpfc_sli_ring_map(9),
lpfc_sli_ringtxcmpl_put(9), lpfc_sli_ringtx_get(9), lpfc_cmf_sync_cmpl(9),
lpfc_issue_cmf_sync_wqe(9), lpfc_sli_next_iocb_slot(9),
lpfc_sli_next_iotag(9), lpfc_sli_submit_iocb(9), lpfc_sli_update_full_ring(9),
lpfc_sli_update_ring(9), lpfc_sli_resume_iocb(9), lpfc_sli_next_hbq_slot(9),
lpfc_sli_hbqbuf_free_all(9), lpfc_sli_hbq_to_firmware(9),
lpfc_sli_hbq_to_firmware_s3(9), lpfc_sli_hbq_to_firmware_s4(9),
lpfc_sli_hbqbuf_fill_hbqs(9), lpfc_sli_hbqbuf_add_hbqs(9),
lpfc_sli_hbqbuf_init_hbqs(9), lpfc_sli_rqbuf_get(9), lpfc_sli_hbqbuf_find(9),
lpfc_sli_free_hbq(9), lpfc_sli_chk_mbx_command(9), lpfc_sli_wake_mbox_wait(9),
lpfc_sli_def_mbox_cmpl(9), lpfc_sli_handle_mb_event(9), lpfc_sli_get_buff(9),
lpfc_nvme_unsol_ls_handler(9), lpfc_complete_unsol_iocb(9),
lpfc_sli_process_unsol_iocb(9), lpfc_sli_iocbq_lookup(9),
lpfc_sli_iocbq_lookup_by_tag(9), lpfc_sli_process_sol_iocb(9),
lpfc_sli_rsp_pointers_error(9), lpfc_poll_eratt(9),
lpfc_sli_handle_fast_ring_event(9), lpfc_sli_sp_handle_rspiocb(9),
lpfc_sli_handle_slow_ring_event(9), lpfc_sli_handle_slow_ring_event_s3(9),
lpfc_sli_handle_slow_ring_event_s4(9), lpfc_sli_abort_iocb_ring(9),
lpfc_sli_abort_fcp_rings(9), lpfc_sli_flush_io_rings(9),
lpfc_sli_brdready_s3(9), lpfc_sli_brdready_s4(9), lpfc_sli_brdready(9),
lpfc_reset_barrier(9), lpfc_sli_brdkill(9), lpfc_sli_brdreset(9),
lpfc_sli4_brdreset(9), lpfc_sli_brdrestart_s3(9), lpfc_sli_brdrestart_s4(9),
lpfc_sli_brdrestart(9), lpfc_sli_chipset_init(9), lpfc_sli_hbq_count(9),
lpfc_sli_hbq_entry_count(9), lpfc_sli_hbq_size(9), lpfc_sli_hbq_setup(9),
lpfc_sli4_rb_setup(9), lpfc_sli_config_port(9), lpfc_sli_hba_setup(9),
lpfc_sli4_read_fcoe_params(9), lpfc_sli4_read_rev(9),
lpfc_sli4_get_ctl_attr(9), lpfc_sli4_retrieve_pport_name(9),
lpfc_sli4_arm_cqeq_intr(9), lpfc_sli4_get_avail_extnt_rsrc(9),
lpfc_sli4_chk_avail_extnt_rsrc(9), lpfc_sli4_cfg_post_extnts(9),
lpfc_sli4_alloc_extent(9), lpfc_sli4_dealloc_extent(9),
lpfc_ras_stop_fwlog(9), lpfc_sli4_ras_dma_free(9), lpfc_sli4_ras_dma_alloc(9),
lpfc_sli4_ras_mbox_cmpl(9), lpfc_sli4_ras_fwlog_init(9),
lpfc_sli4_ras_setup(9), lpfc_sli4_alloc_resource_identifiers(9),
lpfc_sli4_dealloc_resource_identifiers(9), lpfc_sli4_get_allocated_extnts(9),
lpfc_sli4_repost_sgl_list(9), lpfc_sli4_repost_io_sgl_list(9),
lpfc_init_idle_stat_hb(9), lpfc_rx_monitor_create_ring(9),
lpfc_rx_monitor_destroy_ring(9), lpfc_rx_monitor_record(9),
lpfc_rx_monitor_report(9), lpfc_cmf_setup(9), lpfc_get_platform_uuid(9),
lpfc_sli4_hba_setup(9), lpfc_mbox_timeout(9),
lpfc_sli4_mbox_completions_pending(9),
lpfc_sli4_process_missed_mbox_completions(9), lpfc_mbox_timeout_handler(9),
lpfc_sli_issue_mbox_s3(9), lpfc_sli4_async_mbox_block(9),
lpfc_sli4_async_mbox_unblock(9), lpfc_sli4_wait_bmbx_ready(9),
lpfc_sli4_post_sync_mbox(9), lpfc_sli_issue_mbox_s4(9),
lpfc_sli4_post_async_mbox(9), lpfc_sli_issue_mbox(9),
lpfc_mbox_api_table_setup(9), __lpfc_sli_ringtx_put(9),
lpfc_sli_next_iocb(9), __lpfc_sli_issue_iocb_s3(9),
__lpfc_sli_issue_fcp_io_s3(9), __lpfc_sli_issue_fcp_io_s4(9),
__lpfc_sli_issue_iocb_s4(9), lpfc_sli_api_table_setup(9),
lpfc_sli4_calc_ring(9), lpfc_sli_issue_iocb(9), lpfc_extra_ring_setup(9),
lpfc_sli_async_event_handler(9), lpfc_sli4_setup(9), lpfc_sli_setup(9),
lpfc_sli4_queue_init(9), lpfc_sli_queue_init(9), lpfc_sli_mbox_sys_flush(9),
lpfc_sli_host_down(9), lpfc_sli_hba_down(9), lpfc_sli_pcimem_bcopy(9),
lpfc_sli_bemem_bcopy(9), lpfc_sli_ringpostbuf_put(9),
lpfc_sli_get_buffer_tag(9), lpfc_sli_ring_taggedbuf_get(9),
lpfc_sli_ringpostbuf_get(9), lpfc_sli_abort_els_cmpl(9),
lpfc_ignore_els_cmpl(9), lpfc_sli_issue_abort_iotag(9),
lpfc_sli_hba_iocb_abort(9), lpfc_sli_validate_fcp_iocb_for_abort(9),
lpfc_sli_validate_fcp_iocb(9), lpfc_sli_sum_iocb(9),
lpfc_sli_abort_fcp_cmpl(9), lpfc_sli_abort_iocb(9),
lpfc_sli_abort_taskmgmt(9), lpfc_sli_wake_iocb_wait(9),
lpfc_chk_iocb_flg(9), lpfc_sli_issue_iocb_wait(9),
lpfc_sli_issue_mbox_wait(9), lpfc_sli_mbox_sys_shutdown(9),
lpfc_sli_eratt_read(9), lpfc_sli4_eratt_read(9), lpfc_sli_check_eratt(9),
lpfc_intr_state_check(9), lpfc_sli_sp_intr_handler(9),
lpfc_sli_fp_intr_handler(9), lpfc_sli_intr_handler(9),
lpfc_sli4_els_xri_abort_event_proc(9), lpfc_sli4_els_preprocess_rspiocbq(9),
lpfc_sli4_sp_handle_async_event(9), lpfc_sli4_sp_handle_mbox_event(9),
lpfc_sli4_sp_handle_mcqe(9), lpfc_sli4_sp_handle_els_wcqe(9),
lpfc_sli4_sp_handle_rel_wcqe(9), lpfc_sli4_sp_handle_abort_xri_wcqe(9),
lpfc_sli4_sp_handle_rcqe(9), lpfc_sli4_sp_handle_cqe(9),
lpfc_sli4_sp_handle_eqe(9), __lpfc_sli4_process_cq(9),
__lpfc_sli4_sp_process_cq(9), lpfc_sli4_sp_process_cq(9),
lpfc_sli4_dly_sp_process_cq(9), lpfc_sli4_fp_handle_fcp_wcqe(9),
lpfc_sli4_fp_handle_rel_wcqe(9), lpfc_sli4_nvmet_handle_rcqe(9),
lpfc_sli4_fp_handle_cqe(9), __lpfc_sli4_hba_process_cq(9),
lpfc_sli4_hba_process_cq(9), lpfc_sli4_hba_handle_eqe(9),
lpfc_sli4_dly_hba_process_cq(9), lpfc_sli4_hba_intr_handler(9),
lpfc_sli4_intr_handler(9), lpfc_sli4_queue_free(9),
lpfc_sli4_queue_alloc(9), lpfc_dual_chute_pci_bar_map(9),
lpfc_modify_hba_eq_delay(9), lpfc_eq_create(9),
lpfc_sli4_hba_intr_handler_th(9), lpfc_cq_create(9), lpfc_cq_create_set(9),
lpfc_mq_create_fb_init(9), lpfc_mq_create(9), lpfc_wq_create(9),
lpfc_rq_create(9), lpfc_mrq_create(9), lpfc_eq_destroy(9),
lpfc_cq_destroy(9), lpfc_mq_destroy(9), lpfc_wq_destroy(9),
lpfc_rq_destroy(9), lpfc_sli4_post_sgl(9), lpfc_sli4_alloc_xri(9),
__lpfc_sli4_free_xri(9), lpfc_sli4_free_xri(9), lpfc_sli4_post_sgl_list(9),
lpfc_sli4_post_io_sgl_block(9), lpfc_sli4_post_io_sgl_list(9),
lpfc_fc_frame_check(9), lpfc_fc_hdr_get_vfi(9), lpfc_fc_frame_to_vport(9),
lpfc_update_rcv_time_stamp(9), lpfc_cleanup_rcv_buffers(9),
lpfc_rcv_seq_check_edtov(9), lpfc_fc_frame_add(9),
lpfc_sli4_abort_partial_seq(9), lpfc_sli4_abort_ulp_seq(9),
lpfc_sli4_seq_abort_rsp_cmpl(9), lpfc_sli4_xri_inrange(9),
lpfc_sli4_seq_abort_rsp(9), lpfc_sli4_handle_unsol_abort(9),
lpfc_seq_complete(9), lpfc_prep_seq(9), lpfc_sli4_handle_received_buffer(9),
lpfc_sli4_post_all_rpi_hdrs(9), lpfc_sli4_post_rpi_hdr(9),
lpfc_sli4_alloc_rpi(9), __lpfc_sli4_free_rpi(9), lpfc_sli4_free_rpi(9),
lpfc_sli4_remove_rpis(9), lpfc_sli4_resume_rpi(9), lpfc_sli4_init_vpi(9),
lpfc_mbx_cmpl_add_fcf_record(9), lpfc_sli4_add_fcf_record(9),
lpfc_sli4_build_dflt_fcf_record(9), lpfc_sli4_fcf_scan_read_fcf_rec(9),
lpfc_sli4_fcf_rr_read_fcf_rec(9), lpfc_sli4_read_fcf_rec(9),
lpfc_check_next_fcf_pri_level(9), lpfc_sli4_fcf_rr_next_index_get(9),
lpfc_sli4_fcf_rr_index_set(9), lpfc_sli4_fcf_rr_index_clear(9),
lpfc_mbx_cmpl_redisc_fcf_table(9), lpfc_sli4_redisc_fcf_table(9),
lpfc_sli4_fcf_dead_failthrough(9), lpfc_sli_get_config_region23(9),
lpfc_sli4_get_config_region23(9), lpfc_sli_read_link_ste(9),
lpfc_log_fw_write_cmpl(9), lpfc_wr_object(9), lpfc_cleanup_pending_mbox(9),
lpfc_drain_txq(9), lpfc_wqe_bpl2sgl(9), lpfc_sli4_issue_wqe(9),
lpfc_sli4_issue_abort_iotag(9), lpfc_snapshot_mxp(9),
lpfc_adjust_pvt_pool_count(9), lpfc_adjust_high_watermark(9),
lpfc_move_xri_pvt_to_pbl(9), _lpfc_move_xri_pbl_to_pvt(9),
lpfc_move_xri_pbl_to_pvt(9), lpfc_keep_pvt_pool_above_lowwm(9),
lpfc_release_io_buf(9), lpfc_get_io_buf_from_private_pool(9),
lpfc_get_io_buf_from_expedite_pool(9), lpfc_get_io_buf_from_multixri_pools(9),
lpfc_get_io_buf(9), lpfc_read_object(9), lpfc_get_sgl_per_hdwq(9),
lpfc_put_sgl_per_hdwq(9), lpfc_free_sgl_per_hdwq(9),
lpfc_get_cmd_rsp_buf_per_hdwq(9), lpfc_put_cmd_rsp_buf_per_hdwq(9),
lpfc_free_cmd_rsp_buf_per_hdwq(9), lpfc_sli_prep_wqe(9)

like… that's a LOT of friends and honestly every single one of them ate πŸ”₯. go read them too, iykyk.


🌈 the cute sign-off 🌈

this page lives under ./drivers/scsi/lpfc, and it was dated October 2026 β€” so yeah, future vibes only πŸ‘‘. hope this helped bestie, go get that xritag πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from