lpfc_sli4_as...mbox_unblock(9)
π NAME π
Okay so buckle up bestie, this one's called lpfc_sli4_async_mbox_unblock, and it lives in the Kernel API Manual (that's the lpfc_sli4_as...mbox_unblock(9) page you just opened β yes the header truncates the name with ..., that's just how she rolls π).
Here's the official one-liner straight from the page, word for word: "Block posting SLI4 async mailbox command." And yes, I know β the function is literally named unblock and the summary says block. Not me editing the manpage, that's above my pay grade. We report, we don't rewrite. π
β¨ SYNOPSIS β¨
void lpfc_sli4_async_mbox_unblock (struct lpfc_hba *phba );
That's it. One argument, no return value, very lowkey, very demure. π
π«Ά ARGUMENTS π«Ά
phbaβ a pointer to the HBA context object. That's the whole mood. That's the entire input list. π
πΈ DESCRIPTION πΈ
So what does she actually do? This function unblocks, and then resumes, the posting of SLI4 asynchronous mailbox commands β and those come from the driver's internal pending mailbox queue. Basically she un-pauses the queue. She opens the floodgates back up. π
Before she resumes posting those async mailbox commands, she makes sure there's no outstanding mailbox command hanging around. It's giving responsible older sister energy. β¨
And if, for any reason, there is an outstanding mailbox command still out there? She'll try to wait it out before resuming the asynchronous mailbox command posting. No drama, no forcing it β she just waits. β³
π¦ SEE ALSO π¦
Kernel file ./drivers/scsi/lpfc/lpfc_sli.c, plus the full guest list of this function-crush party β and bestie, it is long. Like, "who invited all of lpfc_sli.c" long. Every single one, in order, no cap: π
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_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)
Like I said. Everyone showed up. π₯
And that's the whole page, bestie β nothing skipped, nothing summarised, every single reference accounted for. π
Okay so this absolute icon of a page came from ./drivers/scsi/lpfc, dated October 2026, and it's filed under lpfc_sli4_as...mbox_unblock(9). Stan a kernel doc that keeps it real. π§ββοΈβπ
π¦ 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