lpfc_issue_reset(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ lpfc_issue_reset(9) β€” Kernel API Manual ✨

Okay so bestie, welcome to the Kernel API Manual! πŸ’– Today we're talking about lpfc_issue_reset(9) β€” the function that selectively resets an adapter. Slay! 🌸 This is giving "I'm the main character of SCSI resets" energy and honestly? Obsessed. 🫢


πŸ’… NAME πŸ’…

lpfc_issue_reset β€” selectively resets an adapter. Periodt. πŸ‘‘


πŸ¦‹ SYNOPSIS πŸ¦‹

ssize_t lpfc_issue_reset (struct device *dev , struct device_attribute *attr , const char *buf , size_t count );

πŸŽ€ ARGUMENTS πŸŽ€

  • dev β€” the class device that is converted into a Scsi_host. Like, it's literally the glow-up from device to host. No cap. ✨
  • attr β€” the device attribute. And bestie? It's not used. At all. It's just there for the vibe. πŸ’€
  • buf β€” containing the string "selective". That's the whole mood. πŸŽ€
  • count β€” an unused variable. Not me ignoring it like an unread group chat. πŸ™ˆ

🧚 DESCRIPTION 🧚

So here's the tea β˜•: if the buf contains the string "selective" then lpfc_selective_reset is called to perform the reset. That's it. That's the whole function. It's giving "one job and I did it" and I respect it. πŸ’…


πŸ’œ NOTES πŸ’œ

Okay so this part is important, bestie. Listen up. πŸ‘€

This function assumes any error from lpfc_selective_reset will be negative. 😀 Like, if it's not negative, we're not even thinking about it.

And if lpfc_selective_reset returns zero then the length of the buffer is returned β€” which indicates success. Iykyk. πŸ’–

Lowkey this is the kind of assumption that could cause drama, but that's the design and we're not here to question it. Fr fr. 🫑

πŸ”₯ RETURN πŸ”₯

  • -EINVAL if the buffer does not contain the string "selective". Like, wrong vibe, wrong string, wrong energy. πŸ’€
  • The length of buf if lpfc_selective_reset succeeds. Success slay! πŸŽ‰
  • The return value of lpfc_selective_reset if the call fails. So if it goes wrong, you get whatever that function said. No filter. 😭

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file: ./drivers/scsi/lpfc/lpfc_attr.c

And now, bestie, the iconic list of everything adjacent to this function. Every single one. We don't skip. Periodt. πŸ¦‹

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

Okay that's the whole page, bestie! πŸ’– This iconic little function lives in ./drivers/scsi/lpfc, it's dated October 2026, and the manual page is literally called lpfc_issue_reset(9). Stay slay, keep your buffers containing "selective", and remember: negative errors are the only errors we acknowledge. πŸ˜€πŸ’…βœ¨

πŸ“¦ where this page comes from