lpfc_selective_reset(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… lpfc_selective_reset(9) β€” like, the port goes offline then online again

okay bestie, so we're in the lpfc_selective_reset(9) page from the kernel API manual, and honestly? it's a short one, but it eats. stay with me 🫢


✨ NAME ✨

lpfc_selective_reset β€” literally just offlines the port and then onlines it again. that's the whole vibe check. slay reset behavior πŸ’…


✨ SYNOPSIS ✨

int lpfc_selective_reset (struct lpfc_hba *phba );

✨ ARGUMENTS ✨

  • phba β€” a pointer to lpfc_hba. that's it. that's the whole argument. one (1) pointer, main character energy πŸ‘‘

✨ DESCRIPTION ✨

so here's the tea 🌸 β€” if the port is configured to allow a reset, then the hba gets brought offline and then online. boom. that's the function. no cap, it's that simple.

like, it's giving "turn it off and on again" but make it enterprise Fibre Channel 😭✨


✨ NOTES ✨

  • it assumes that any error coming back from lpfc_do_offline will be negative. that's the contract, don't fight it.
  • do not make this function static. like, genuinely, don't. this is a real note from the original, not me being dramatic for fun πŸ’€

✨ RETURN ✨

okay so what comes back πŸ¦‹:

  • the return code from lpfc_do_offline if it's not zero β€” we pass that straight through.
  • -EIO β€” when a reset is not configured, or when there was an error posting the event.
  • zero β€” success, we ate, everything's fine πŸ‘‘

✨ SEE ALSO ✨

the source lives in the kernel file ./drivers/scsi/lpfc/lpfc_attr.c, and ngl the friend group here is massive β€” this function rolls deep. here's the entire squad, fr fr πŸ’œ

lpfc_jedec_to_ascii(9), lpfc_drvr_version_show(9), lpfc_enable_fip_show(9), lpfc_info_show(9), lpfc_serialnum_show(9), lpfc_temp_sensor_show(9), lpfc_modeldesc_show(9), lpfc_modelname_show(9), lpfc_programtype_show(9), lpfc_vportnum_show(9), lpfc_fwrev_show(9), lpfc_hdw_show(9), lpfc_option_rom_version_show(9), lpfc_link_state_show(9), lpfc_sli4_protocol_show(9), lpfc_oas_supported_show(9), lpfc_link_state_store(9), lpfc_num_discovered_ports_show(9), lpfc_issue_lip(9), lpfc_do_offline(9), lpfc_reset_pci_bus(9), lpfc_issue_reset(9), lpfc_sli4_pdev_status_reg_wait(9), lpfc_sli4_pdev_reg_request(9), lpfc_nport_evt_cnt_show(9), lpfc_board_mode_show(9), lpfc_board_mode_store(9), lpfc_get_hba_info(9), lpfc_max_rpi_show(9), lpfc_used_rpi_show(9), lpfc_max_xri_show(9), lpfc_used_xri_show(9), lpfc_max_vpi_show(9), lpfc_used_vpi_show(9), lpfc_npiv_info_show(9)

lpfc_poll_show(9), lpfc_poll_store(9), lpfc_sriov_hw_max_virtfn_show(9), lpfc_enable_bbcr_set(9), lpfc_wwn_set(9), lpfc_oas_tgt_show(9), lpfc_oas_tgt_store(9), lpfc_oas_priority_show(9), lpfc_oas_priority_store(9), lpfc_oas_vpt_show(9), lpfc_oas_vpt_store(9), lpfc_oas_lun_state_show(9), lpfc_oas_lun_state_store(9), lpfc_oas_lun_status_show(9), lpfc_oas_lun_state_set(9), lpfc_oas_lun_get_next(9), lpfc_oas_lun_state_change(9), lpfc_oas_lun_show(9), lpfc_oas_lun_store(9), lpfc_nodev_tmo_show(9), lpfc_nodev_tmo_init(9), lpfc_update_rport_devloss_tmo(9), lpfc_nodev_tmo_set(9), lpfc_devloss_tmo_set(9), lpfc_tgt_queue_depth_set(9), lpfc_restrict_login_init(9), lpfc_restrict_login_set(9), lpfc_topology_store(9), lpfc_static_vport_show(9), lpfc_link_speed_store(9), lpfc_link_speed_init(9), lpfc_aer_support_store(9), lpfc_aer_cleanup_state(9)

lpfc_sriov_nr_virtfn_store(9), lpfc_request_firmware_upgrade_store(9), lpfc_request_firmware_upgrade_init(9), lpfc_force_rscn_store(9), lpfc_force_rscn_init(9), lpfc_fcp_imax_store(9), lpfc_fcp_imax_init(9), lpfc_cq_max_proc_limit_store(9), lpfc_cq_max_proc_limit_init(9), lpfc_fcp_cpu_map_show(9), lpfc_fcp_cpu_map_store(9), lpfc_fcp_cpu_map_init(9), lpfc_cpumask_irq_mode_init(9), lpfc_irq_chann_show(9), lpfc_sg_seg_cnt_show(9), lpfc_sg_seg_cnt_init(9), sysfs_ctlreg_write(9), sysfs_ctlreg_read(9), sysfs_mbox_write(9), sysfs_mbox_read(9), lpfc_alloc_sysfs_attr(9), lpfc_free_sysfs_attr(9), lpfc_get_host_symbolic_name(9), lpfc_get_host_port_id(9), lpfc_get_host_port_type(9), lpfc_get_host_port_state(9), lpfc_get_host_speed(9), lpfc_get_host_fabric_name(9), lpfc_get_stats(9), lpfc_reset_stats(9), lpfc_get_enc_info(9), lpfc_get_node_by_target(9)

lpfc_get_starget_port_id(9), lpfc_get_starget_node_name(9), lpfc_get_starget_port_name(9), lpfc_set_rport_loss_tmo(9), lpfc_set_vport_symbolic_name(9), lpfc_hba_log_verbose_init(9), lpfc_get_hba_function_mode(9), lpfc_get_cfgparam(9), lpfc_nvme_mod_param_dep(9), lpfc_get_vport_cfgparam(9)

like… that's the whole group chat, and every single one of them showed up πŸ’€πŸ’–


okay that's the page!! it comes to you from ./drivers/scsi/lpfc and it's dated October 2026 β€” so it's from the future, which honestly tracks for someone this iconic 🌈⭐ byeee πŸŽ€

πŸ“¦ where this page comes from