lpfc_pci_probe_one_s4(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

okay bestie, welcome to lpfc_pci_probe_one_s4(9) from the Kernel API Manual β€” yes, the section 9 page about the PCI probe function that registers an SLI-4 device with the PCI subsystem. it's giving kernel-driver matchmaking energy, and we're gonna read every bit of it together. πŸ’…

🌸 NAME 🌸

lpfc_pci_probe_one_s4 β€” the PCI probe function that registers an SLI-4 device with the PCI subsystem. literally the β€œcan u be mine?” moment between the kernel and the HBA. 🫢

✨ SYNOPSIS ✨

int lpfc_pci_probe_one_s4 (struct pci_dev *pdev , const struct
       pci_device_id *pid );

that's the whole signature, bestie β€” don't rename the args, don't merge the spaces, just let it be iconic. πŸ’…

πŸŽ€ ARGUMENTS πŸŽ€

  • pdev β€” pointer to PCI device. the actual device being looked at πŸ‘€
  • pid β€” pointer to PCI device identifier. the ID matchmaking card πŸ’³

πŸ’– DESCRIPTION πŸ’–

so this routine gets called from the kernel's PCI subsystem for a device with the SLI-4 interface spec. when an Emulex HBA with the SLI-4 interface spec is presented on the PCI bus, the kernel PCI subsystem looks at the PCI device-specific information of the device and driver to see if the driver state that it can support this kind of device. if that match is successful, the driver core invokes this routine. and if this routine determines it can claim the HBA, it does all the initialization that it needs to do to handle the HBA properly. no cap, that's the whole glow-up. ✨

return code tea: πŸ“

  • 0 β€” driver can claim the device. slay, it's yours.
  • negative value β€” driver can not claim the device. not today, bestie. πŸ’€

πŸ¦‹ SEE ALSO πŸ¦‹

kernel file first: ./drivers/scsi/lpfc/lpfc_init.c. then here's the full squad of related functions β€” every single reference, no skips, iykyk:

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_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)

made with πŸ’œ from ./drivers/scsi/lpfc Β· October 2026 Β· lpfc_pci_probe_one_s4(9) β€” bye bestie, go probe responsibly 🧚

πŸ“¦ where this page comes from