lpfc_hba_down_post_s4(9)
π lpfc_hba_down_post_s4(9) β Kernel API Manual β¨
okay so bestie, we're in the kernel API manual today and the star of the show is lpfc_hba_down_post_s4(9). it lives in ./drivers/scsi/lpfc and honestly? she's giving cleanup crew main character energy π§Ήπ
πΈ NAME πΈ
lpfc_hba_down_post_s4 β bestie this one does the lpfc uninitialization after HBA reset. that's the whole vibe. no cap π
β¨ SYNOPSIS β¨
int lpfc_hba_down_post_s4 (struct lpfc_hba *phba );
π ARGUMENTS π
phbaβ pointer to the lpfc HBA data structure. that's it, that's the whole argument list, she keeps it simple π«Ά
π¦ DESCRIPTION π¦
okay so picture this: the HBA just got reset, the SLI Layer is being brought down, and somebody has to do the uninitialization afterwards. that somebody is this routine. she shows up after the reset, does the tidying, and dips β¨
return codes, very important, do not skip:
0β success π- any other value β error π
fr fr, anything that isn't 0 means something went sideways. iykyk.
π SEE ALSO π
bestie. buckle up. this list is long and every single one of these is iconic in her own right π
lpfc_config_port_prep(9), lpfc_config_async_cmpl(9), lpfc_dump_wakeup_param_cmpl(9), lpfc_update_vport_wwn(9), lpfc_config_port_post(9), lpfc_sli4_refresh_params(9), lpfc_hba_init_link(9), lpfc_hba_init_link_fc_topology(9), lpfc_hba_down_link(9), lpfc_hba_down_prep(9), lpfc_sli4_free_sp_events(9), lpfc_hba_free_post_buf(9), lpfc_hba_clean_txcmplq(9), lpfc_hba_down_post_s3(9), lpfc_hba_down_post(9), lpfc_hb_timeout(9), lpfc_rrq_timeout(9), lpfc_hb_mbox_cmpl(9), lpfc_hb_mxp_handler(9), lpfc_issue_hb_mbox(9), lpfc_issue_hb_tmo(9), lpfc_hb_timeout_handler(9)
and then the error-attention girlies π
lpfc_offline_eratt(9), lpfc_sli4_offline_eratt(9), lpfc_handle_deferred_eratt(9), lpfc_handle_eratt_s3(9), lpfc_sli4_port_sta_fn_reset(9), lpfc_handle_eratt_s4(9), lpfc_handle_eratt(9), lpfc_handle_latt(9), lpfc_parse_vpd(9), lpfc_get_atto_model_desc(9), lpfc_get_hba_model_desc(9), lpfc_sli3_post_buffer(9), lpfc_post_rcv_buf(9)
a little crypto moment, we love to see it π
lpfc_sha_init(9), lpfc_sha_iterate(9), lpfc_challenge_key(9)
init / cleanup / timers squad, they never miss β°
lpfc_hba_init(9), lpfc_cleanup(9), lpfc_stop_vport_timers(9), __lpfc_sli4_stop_fcf_redisc_wait_timer(9), lpfc_sli4_stop_fcf_redisc_wait_timer(9), lpfc_cmf_stop(9), lpfc_cmf_start(9), lpfc_stop_hba_timers(9), lpfc_block_mgmt_io(9), lpfc_sli4_node_rpi_restore(9)
pool party, literally π
lpfc_create_expedite_pool(9), lpfc_destroy_expedite_pool(9), lpfc_create_multixri_pools(9), lpfc_destroy_multixri_pools(9)
online / offline / free-things energy π¦
lpfc_online(9), lpfc_unblock_mgmt_io(9), lpfc_offline_prep(9), lpfc_offline(9), lpfc_scsi_free(9), lpfc_io_free(9), lpfc_sli4_els_sgl_update(9), lpfc_sli4_nvmet_sgl_update(9), lpfc_sli4_io_sgl_update(9), lpfc_new_io_buf(9), lpfc_vmid_res_alloc(9), lpfc_create_port(9), destroy_port(9), lpfc_get_instance(9), lpfc_scan_finished(9), lpfc_host_attrib_init(9), lpfc_stop_port_s3(9), lpfc_stop_port_s4(9), lpfc_stop_port(9)
FCF rediscovery watchers, the way they keep waiting π
lpfc_fcf_redisc_wait_start_timer(9), lpfc_sli4_fcf_redisc_wait_tmo(9), lpfc_vmid_poll(9)
LATT + port speed girlies πΆ
lpfc_sli4_parse_latt_fault(9), lpfc_sli4_parse_latt_type(9), lpfc_sli_port_speed_get(9), lpfc_sli4_port_speed_parse(9), lpfc_sli4_async_link_evt(9), lpfc_async_link_speed_to_read_top(9)
congestion management crew πΈ
lpfc_cgn_update_stat(9), lpfc_cgn_update_tstamp(9), lpfc_cmf_stats_timer(9), lpfc_calc_cmf_latency(9), lpfc_cmf_timer(9)
async event everything, she does it all β¨
lpfc_sli4_async_fc_evt(9), lpfc_sli4_async_sli_evt(9), lpfc_sli4_perform_vport_cvl(9), lpfc_sli4_perform_all_vport_cvl(9), lpfc_sli4_async_fip_evt(9), lpfc_sli4_async_dcbx_evt(9), lpfc_sli4_async_grp5_evt(9), lpfc_sli4_async_cmstat_evt(9)
cgn params, read 'em and weep π
lpfc_cgn_params_val(9), lpfc_cgn_params_parse(9), lpfc_sli4_cgn_params_read(9), lpfc_sli4_cgn_parm_chg_evt(9)
event processing + api table setup π₯
lpfc_sli4_async_event_proc(9), lpfc_sli4_fcf_redisc_event_proc(9), lpfc_api_table_setup(9), lpfc_log_intr_mode(9), lpfc_enable_pci_dev(9), lpfc_disable_pci_dev(9), lpfc_reset_hba(9)
SR-IOV vibes π§
lpfc_sli_sriov_nr_virtfn_get(9), lpfc_sli_probe_sriov_nr_virtfn(9)
driver resource setup + unset, phase one AND two, she's thorough π
lpfc_setup_driver_resource_phase1(9), lpfc_sli_driver_resource_setup(9), lpfc_sli_driver_resource_unset(9), lpfc_sli4_driver_resource_setup(9), lpfc_sli4_driver_resource_unset(9), lpfc_init_api_table_setup(9), lpfc_setup_driver_resource_phase2(9), lpfc_unset_driver_resource_phase2(9)
iocb + sgl list management, the unglamorous but essential π
lpfc_free_iocb_list(9), lpfc_init_iocb_list(9), lpfc_free_sgl_list(9), lpfc_free_els_sgl_list(9), lpfc_free_nvmet_sgl_list(9), lpfc_init_active_sgl_array(9), lpfc_free_active_sgl(9), lpfc_init_sgl_list(9), lpfc_sli4_init_rpi_hdrs(9), lpfc_sli4_create_rpi_hdr(9), lpfc_sli4_remove_rpi_hdrs(9)
hba alloc/free + shost stuff π«Ά
lpfc_hba_alloc(9), lpfc_hba_free(9), lpfc_setup_fdmi_mask(9), lpfc_create_shost(9), lpfc_destroy_shost(9), lpfc_setup_bg(9), lpfc_post_init_setup(9)
pci mem setup, bars 0/1/2, all of it β
lpfc_sli_pci_mem_setup(9), lpfc_sli_pci_mem_unset(9), lpfc_sli4_post_status_check(9), lpfc_sli4_bar0_register_memmap(9), lpfc_sli4_bar1_register_memmap(9), lpfc_sli4_bar2_register_memmap(9), lpfc_create_bootstrap_mbox(9), lpfc_destroy_bootstrap_mbox(9), lpfc_map_topology(9), lpfc_sli4_read_config(9), lpfc_setup_endian_order(9)
queues, queues, and more queues π
lpfc_sli4_queue_verify(9), lpfc_sli4_queue_create(9), lpfc_sli4_queue_destroy(9), lpfc_setup_cq_lookup(9), lpfc_sli4_queue_setup(9), lpfc_sli4_queue_unset(9)
cq event pool, alloc/release, the whole saga π
lpfc_sli4_cq_event_pool_create(9), lpfc_sli4_cq_event_pool_destroy(9), __lpfc_sli4_cq_event_alloc(9), lpfc_sli4_cq_event_alloc(9), __lpfc_sli4_cq_event_release(9), lpfc_sli4_cq_event_release(9), lpfc_sli4_cq_event_release_all(9), lpfc_pci_function_reset(9), lpfc_sli4_pci_mem_setup(9), lpfc_sli4_pci_mem_unset(9)
interrupt enable/disable crew β‘
lpfc_sli_enable_msix(9), lpfc_sli_enable_msi(9), lpfc_sli_enable_intr(9), lpfc_sli_disable_intr(9)
cpu affinity besties, they're obsessed with your cores π
lpfc_find_cpu_handle(9), lpfc_find_hyper(9), lpfc_cpu_map_array_init(9), lpfc_hba_eq_hdl_array_init(9), lpfc_cpu_affinity_check(9), lpfc_cpuhp_get_eq(9), lpfc_irq_set_aff(9), lpfc_irq_clear_aff(9), lpfc_irq_rebalance(9)
sli4 intr + hba unset π
lpfc_sli4_enable_msix(9), lpfc_sli4_enable_msi(9), lpfc_sli4_enable_intr(9), lpfc_sli4_disable_intr(9), lpfc_unset_hba(9), lpfc_sli4_xri_exchange_busy_wait(9), lpfc_sli4_hba_unset(9), __lpfc_reg_congestion_buf(9), lpfc_get_sli4_parameters(9)
pci probe/remove/suspend/resume, s3 edition π
lpfc_pci_probe_one_s3(9), lpfc_pci_remove_one_s3(9), lpfc_pci_suspend_one_s3(9), lpfc_pci_resume_one_s3(9)
prep-dev-for-things, the dramatic trilogy π
lpfc_sli_prep_dev_for_recover(9), lpfc_sli_prep_dev_for_reset(9), lpfc_sli_prep_dev_for_perm_failure(9), lpfc_io_error_detected_s3(9), lpfc_io_slot_reset_s3(9), lpfc_io_resume_s3(9)
iocb counting + firmware, she's got receipts π
lpfc_sli4_get_els_iocb_cnt(9), lpfc_sli4_get_iocb_cnt(9), lpfc_write_firmware(9), lpfc_sli4_request_firmware_update(9)
pci probe/remove/suspend/resume, s4 edition (our girl's home turf) π
lpfc_pci_probe_one_s4(9), lpfc_pci_remove_one_s4(9), lpfc_pci_suspend_one_s4(9), lpfc_pci_resume_one_s4(9)
more prep-dev drama, but make it s4 π₯
lpfc_sli4_prep_dev_for_recover(9), lpfc_sli4_prep_dev_for_reset(9), lpfc_sli4_prep_dev_for_perm_failure(9), lpfc_io_error_detected_s4(9), lpfc_io_slot_reset_s4(9), lpfc_io_resume_s4(9)
the generic versions, no version suffix, no notes πΈ
lpfc_pci_probe_one(9), lpfc_pci_remove_one(9), lpfc_pci_suspend_one(9), lpfc_pci_resume_one(9), lpfc_io_error_detected(9), lpfc_io_slot_reset(9), lpfc_io_resume(9)
and the final icons of the list, saving the most iconic for last π¬
lpfc_sli4_oas_verify(9), lpfc_sli4_ras_init(9), lpfc_init(9), lpfc_exit(9)
and that's the whole page bestie, you ate that π«Άβ¨
okay final sign-off: this page comes from ./drivers/scsi/lpfc, dated October 2026, and it's part of the Kernel API Manual. bye ily ππ¦π
π¦ 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