lpfc_sli_hbq_setup(9)
π NAME π
lpfc_sli_hbq_setup β configure and initialize HBQs π
okay so real talk, this is a page from the Kernel API Manual, and it's genuinely a tiny little function with a big job. Let's get into it, bestie π«Ά
β¨ SYNOPSIS β¨
int lpfc_sli_hbq_setup (struct lpfc_hba *phba );
that's it. that's the whole signature. iconic minimalism π
πΈ ARGUMENTS πΈ
phbaβ a pointer to the HBA context object. like, the whole personality of your host bus adapter lives in there, and this is your ticket to it ποΈ
π¦ DESCRIPTION π¦
so here's the vibe: this function gets called during SLI initialization, and its whole thing is to configure all the HBQs and then post buffers to the HBQ. like, every single one. no skipping. very main character energy π
the way that it works is genuinely low-maintenance: the caller is not required to hold any locks. none. zero. you can just walk up and call it, no lock drama, no situationships with mutexes π
and for the return value, here's the tea π΅:
- returns zero if it's all good β slay, success, we love to see it β¨
- otherwise it returns a negative error code β so like, if you see a negative number coming back, that's your sign something went sideways, bestie π
ngl this one is easy to remember: zero = happy, negative = not happy. periodt.
π₯ SEE ALSO π₯
okay so brace yourself, because this list is long β like, "scrolling through someone's entire instagram at 3am" long. but every single one of these is part of the family, so here they all are, in order, no cap π
first up, the kernel file: ./drivers/scsi/lpfc/lpfc_sli.c β that's where the source lives, go say hi π
then, the references:
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_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)
and that's the whole page, bestie β short function, huge friend group π
π one last thing before you go: this page lives in./drivers/scsi/lpfc, it's from October 2026, and you can find it filed underlpfc_sli_hbq_setup(9). go forth and configure those HBQs, you absolute icon πβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms