lpfc_pci_remove_one(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… lpfc_pci_remove_one(9)

okay bestie, welcome to the lpfc_pci_remove_one(9) page in the Kernel API Manual. This is the PCI unregister-one girlie, and she is here to explain the goodbye properly. 🫢


🌸 NAME 🌸

lpfc_pci_remove_one β€” the lpfc PCI func to unreg a dev from the PCI subsystem. That's the name, no cap. ✨

✨ SYNOPSIS ✨

The whole signature, literally:

void lpfc_pci_remove_one (struct pci_dev *pdev );

πŸŽ€ ARGUMENTS πŸŽ€

  • pdev β€” pointer to the PCI device. Yep, that's the device we're waving bye to. πŸ‘‹

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so real talk: this routine is registered to the kernel's PCI subsystem. When an Emulex HBA is removed from the PCI bus, the driver core invokes this routine. It's giving "the cleanup committee has entered the chat." πŸ’…

Then this routine dispatches the action to the proper SLI-3 or SLI-4 device remove routine. That routine performs all the necessary cleanup so the device can be removed from the PCI subsystem properly. No leftovers, no messy goodbye, periodt. ✨

🌈 SEE ALSO 🌈

The whole (9) friend group is here, verbatim, because we do not skip refs. iykyk:

Kernel file ./drivers/scsi/lpfc/lpfc_init.c 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_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_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)

sending u the biggest hug from ./drivers/scsi/lpfc, October 2026, on the lpfc_pci_remove_one(9) page β€” bye bestie, slay your cleanup πŸ’–

πŸ“¦ where this page comes from