lpfc_handle_deferred_eratt(9)
π NAME π
lpfc_handle_deferred_eratt β the HBA hardware deferred error handler. This one's straight out of the Kernel API Manual, section 9, and it's literally the function that handles your HBA's deferred hardware error conditions. Yes bestie, it's giving "adult in the room" energy. π
β¨ SYNOPSIS β¨
void lpfc_handle_deferred_eratt (struct lpfc_hba *phba );
π«Ά ARGUMENTS π«Ά
phbaβ pointer tolpfchba data structure. That's the whole arg list, no notes, one pointer, iconic.
π DESCRIPTION π
Okay so picture this π¬ β this routine is invoked to handle the deferred HBA hardware error conditions. Deferred as in the hardware clocked the problem, went "not me dealing with this right now π", and queued it for later.
The way this type of error gets flagged is: the HBA sets ER1 plus another ER bit in the host status register. Two bits, together, that's the official vibe check that says "hey, deferred error, come get it".
And here's the actual slay π β the driver will wait until the ER1 bit clears before handling the error condition. No barging in, no yolo, just patient main character energy until the bit says she's ready. πΈ
π¦ SEE ALSO π¦
Kernel file ./drivers/scsi/lpfc/lpfc_init.c β and honestly, the entire friend group is here:
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_s4(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)lpfc_offline_eratt(9)lpfc_sli4_offline_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)lpfc_sha_init(9)lpfc_sha_iterate(9)lpfc_challenge_key(9)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)lpfc_create_expedite_pool(9)lpfc_destroy_expedite_pool(9)lpfc_create_multixri_pools(9)lpfc_destroy_multixri_pools(9)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)lpfc_fcf_redisc_wait_start_timer(9)lpfc_sli4_fcf_redisc_wait_tmo(9)lpfc_vmid_poll(9)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)lpfc_cgn_update_stat(9)lpfc_cgn_update_tstamp(9)lpfc_cmf_stats_timer(9)lpfc_calc_cmf_latency(9)lpfc_cmf_timer(9)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)lpfc_cgn_params_val(9)lpfc_cgn_params_parse(9)lpfc_sli4_cgn_params_read(9)lpfc_sli4_cgn_parm_chg_evt(9)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)lpfc_sli_sriov_nr_virtfn_get(9)lpfc_sli_probe_sriov_nr_virtfn(9)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)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)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)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)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)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)lpfc_sli_enable_msix(9)lpfc_sli_enable_msi(9)lpfc_sli_enable_intr(9)lpfc_sli_disable_intr(9)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)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)lpfc_pci_probe_one_s3(9)lpfc_pci_remove_one_s3(9)lpfc_pci_suspend_one_s3(9)lpfc_pci_resume_one_s3(9)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)lpfc_sli4_get_els_iocb_cnt(9)lpfc_sli4_get_iocb_cnt(9)lpfc_write_firmware(9)lpfc_sli4_request_firmware_update(9)lpfc_pci_probe_one_s4(9)lpfc_pci_remove_one_s4(9)lpfc_pci_suspend_one_s4(9)lpfc_pci_resume_one_s4(9)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)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)lpfc_sli4_oas_verify(9)lpfc_sli4_ras_init(9)lpfc_init(9)lpfc_exit(9)
And that's the whole page, bestie π«Ά this one lives in ./drivers/scsi/lpfc, dated October 2026, and it's filed under lpfc_handle_deferred_eratt(9) in your Kernel API Manual. Go forth and wait for ER1 to clear like the patient icon you are. πβ¨
π¦ 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