lpfc_unblock_mgmt_io(9)
π lpfc_unblock_mgmt_io β like, the Kernel API Manual girlies finally get their moment β¨
okay bestie, buckle up, because this one is genuinely so simple it's iconic. We're in the Kernel API Manual today, and the star of the show is a lil function that just... un-blocks a thing. That's it. That's the whole vibe. π
β¨ NAME β¨
lpfc_unblock_mgmt_io β marks a HBA's management interface to be not blocked π«Ά
πΈ SYNOPSIS πΈ
void lpfc_unblock_mgmt_io (struct lpfc_hba * phba );
no return value, no drama, she just does the thing and leaves π
π¦ ARGUMENTS π¦
phbaβ pointer to the lpfc hba data structure. yes that's it. one (1) argument. she's low maintenance like that π
π§ DESCRIPTION π§
So here's the tea β β this routine marks a HBA's management interface as not blocked. And like, why do we care? Because once the HBA's management interface is marked as not blocked, all the user space access to the HBA gets allowed again. All of it. Whether it's coming from the sysfs interface or the libdfc interface β everybody's getting in, no bouncer at the door. π
The way this works: the HBA is set to block the management interface when the driver prepares the HBA interface for online or offline, and then it gets set to unblock the management interface afterwards. So block β do the online/offline prep β unblock. It's giving "we closed the club to mop the floors, and now we're reopening it." πͺ© periodt.
ngl there's not a ton else to say here β the whole function is one glorious little state flip and honestly? respect. π
π SEE ALSO π
okay this is the part where the friend group rolls deep. Like, do not let the tiny function fool you, her contact list is enormous. She knows everyone. iykyk π
Kernel file: ./drivers/scsi/lpfc/lpfc_init.c
And here's the whole squad, in order, every single one, no cap:
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_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), 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_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)
like I said. enormous friend group. every one of them a real one π«Ά
π sign-off π
this page lives at ./drivers/scsi/lpfc, dated October 2026, and it's page lpfc_unblock_mgmt_io(9) of the Kernel API Manual β and that's the whole thing bestie, go unblock somebody's management interface, you absolute main character πβ¨π
π¦ 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