lpfc_sli_next_iocb_slot(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

okay bestie, this is the Kernel API Manual entry for lpfc_sli_next_iocb_slot(9) β€” Get next iocb slot in the ring 🎯✨


🌸 SYNOPSIS 🌸

literally the signature, no cap:

IOCB_t * lpfc_sli_next_iocb_slot (struct lpfc_hba *phba , struct
       lpfc_sli_ring *pring );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • phba β€” pointer to the HBA context object πŸ’–
  • pring β€” pointer to the driver SLI ring object πŸŒ€

✨ DESCRIPTION ✨

okay so this function is called with hbalock held, and the caller must post the iocb without releasing the lock. if the caller releases the lock, the iocb slot returned by the function is not guaranteed to be available β€” that’s the whole vibe, bestie 😭

the function returns a pointer to the next available iocb slot if there’s an available slot in the ring, and otherwise it returns NULL.

and if the get index of the ring is ahead of the put index, the function will post an error attention event to the worker thread to take the HBA to offline state πŸ’€

⚠️ fr fr: caller must post the iocb without releasing the lock, or the returned iocb slot is not guaranteed to be available. no cap.

πŸ¦„ SEE ALSO πŸ¦„

bestie, this list is huge but every single reference is here, no skips πŸ‘‘:

       Kernel file ./drivers/scsi/lpfc/lpfc_sli.c 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_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_next_xritag(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)

xoxo bestie πŸ’…βœ¨ this page’s source/version is ./drivers/scsi/lpfc and the date is October 2026 β€” mwah πŸ«ΆπŸŽ€

πŸ“¦ where this page comes from