lpfc_log_fw_write_cmpl(9)
okay so bestie, welcome to the lpfc_log_fw_write_cmpl(9) page from the Kernel API Manual. yes we are in kernel land, but make it cute π. this one is all about logging firmware write completion status, and it's giving very specific post-write energy.
β¨ NAME β¨
lpfc_log_fw_write_cmpl β logs firmware write completion status. short, iconic, no notes. π
πΈ SYNOPSIS πΈ
void lpfc_log_fw_write_cmpl (struct lpfc_hba *phba , u32 shdr_status ,
u32 shdr_add_status , u32 shdr_add_status_2 , u32 shdr_change_status ,
u32 shdr_csf );
π¦ ARGUMENTS π¦
phbaβ pointer to lpfc hba data structure. yes, the whole hba vibe πshdr_statusβ wr_object rsp's status field.shdr_add_statusβ wr_object rsp's add_status field.shdr_add_status_2β wr_object rsp's add_status_2 field.shdr_change_statusβ wr_object rsp's change_status field.shdr_csfβ wr_object rsp's csf bit.
π DESCRIPTION π
okay so this routine is intended to be called after a firmware write completes. that is its whole moment to shine β¨. it will log next action items to be performed by the user to instantiate the newly downloaded firmware, or the reason for incompatibility. literally the post-write to-do list or the incompatibility receipt, no cap π.
π SEE ALSO π
the original hands us a whole group-chat roster: Kernel file ./drivers/scsi/lpfc/lpfc_sli.c plus these besties. every name is copied exactly, because names are sacred and i do not play with identifiers π«Ά:
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_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_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)
that's the whole page, bestie π
. source/version/date crew: ./drivers/scsi/lpfc β’ October 2026 β’ lpfc_log_fw_write_cmpl(9). mwah πβ¨
π¦ 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