scsih_pci_error_detected(9)
π scsih_pci_error_detected β a kernel API manual moment
okay so bestie, we're in the kernel API manual today, and the star of the show is scsih_pci_error_detected(9). yes it's a whole vibe. let's get into it π«Ά
β¨ NAME β¨
scsih_pci_error_detected β literally the function that gets called when a PCI error is detected π
πΈ SYNOPSIS πΈ
pci_ers_result_t scsih_pci_error_detected (struct pci_dev *pdev ,
pci_channel_state_t state );
that's it. that's the whole signature. she's compact, she's iconic, she takes exactly two arguments and she does not elaborate π
π ARGUMENTS π
pdevβ the PCI device struct, aka the device we're talking about. your main character, basically πstateβ the PCI channel state. the situation report. the vibe check, if you will π¦
π DESCRIPTION π
so here's the tea: this function is called when a PCI error is detected. that's the whole description. that's the assignment. she understood it perfectly β¨
no extra lore, no secret lore drop. the manpage said what it said and honestly? respect for the brevity π
π₯ RETURN π₯
it returns one of these two, and you gotta know which:
PCI_ERS_RESULT_NEED_RESETPCI_ERS_RESULT_DISCONNECT
ngl those are two very different outcomes so like, pay attention π
π¦ SEE ALSO π¦
okay so this is the part where the manpage absolutely pops off. bestie there are SO many cross-references. the kernel file itself is:
./drivers/scsi/mpt3sas/mpt3sas_scsih.c
and there's this enum: device_responsive_state(9) β plus, uh, literally everyone else in the mpt3sas extended family. here's the full roll call, no cap, nobody left out π«Ά
struct sense_info(9), struct fw_event_work(9),
struct _scsi_io_transfer(9),
_scsih_set_debug_level(9), _scsih_srch_boot_sas_address(9),
_scsih_srch_boot_device_name(9), _scsih_srch_boot_encl_slot(9),
mpt3sas_get_port_by_id(9), mpt3sas_get_vphy_by_phy(9),
_scsih_is_boot_device(9), _scsih_get_sas_address(9),
_scsih_determine_boot_device(9), mpt3sas_get_pdev_from_target(9),
__mpt3sas_get_sdev_by_rphy(9), __mpt3sas_get_sdev_by_addr(9),
mpt3sas_get_sdev_by_addr(9), mpt3sas_get_sdev_by_handle(9),
_scsih_display_enclosure_chassis_info(9), _scsih_sas_device_remove(9),
_scsih_device_remove_by_handle(9),
mpt3sas_device_remove_by_sas_address(9), _scsih_sas_device_add(9),
_scsih_sas_device_init_add(9), mpt3sas_get_pdev_by_wwid(9),
mpt3sas_get_pdev_by_handle(9), _scsih_set_nvme_max_shutdown_latency(9),
_scsih_pcie_device_remove(9), _scsih_pcie_device_remove_by_handle(9),
_scsih_pcie_device_add(9), _scsih_raid_device_find_by_id(9),
mpt3sas_raid_device_find_by_handle(9),
_scsih_raid_device_find_by_wwid(9), _scsih_raid_device_add(9),
_scsih_raid_device_remove(9), mpt3sas_scsih_expander_find_by_handle(9),
mpt3sas_scsih_enclosure_find_by_handle(9),
mpt3sas_scsih_expander_find_by_sas_address(9),
_scsih_expander_node_add(9), _scsih_is_end_device(9),
_scsih_is_nvme_pciescsi_device(9), _scsih_scsi_lookup_find_by_target(9),
_scsih_scsi_lookup_find_by_lun(9), mpt3sas_scsih_scsi_lookup_get(9),
scsih_change_queue_depth(9), mpt3sas_scsih_change_queue_depth(9),
scsih_target_alloc(9), scsih_target_destroy(9), scsih_sdev_init(9),
scsih_sdev_destroy(9), _scsih_display_sata_capabilities(9),
scsih_is_raid(9), scsih_get_resync(9), scsih_get_state(9),
_scsih_set_level(9), _scsih_get_volume_capabilities(9),
_scsih_enable_tlr(9), scsih_sdev_configure(9), scsih_bios_param(9),
_scsih_response_code(9), _scsih_tm_done(9),
mpt3sas_scsih_set_tm_flag(9), mpt3sas_scsih_clear_tm_flag(9),
scsih_tm_cmd_map_status(9), scsih_tm_post_processing(9),
mpt3sas_scsih_issue_tm(9), _scsih_tm_display_info(9), scsih_abort(9),
scsih_dev_reset(9), scsih_target_reset(9), scsih_host_reset(9),
_scsih_fw_event_add(9), _scsih_fw_event_del_from_list(9),
_scsih_fw_event_requeue(9), _scsih_error_recovery_delete_devices(9),
mpt3sas_port_enable_complete(9), _scsih_fw_event_cleanup_queue(9),
_scsih_internal_device_block(9), _scsih_internal_device_unblock(9),
_scsih_ublock_io_all_device(9), _scsih_ublock_io_device_wait(9),
_scsih_ublock_io_device(9), _scsih_block_io_all_device(9),
_scsih_block_io_device(9),
_scsih_block_io_to_children_attached_to_ex(9),
_scsih_block_io_to_children_attached_directly(9),
_scsih_block_io_to_pcie_children_attached_directly(9),
_scsih_tm_tr_send(9), _scsih_tm_tr_complete(9),
_scsih_sas_control_complete(9), _scsih_tm_tr_volume_send(9),
_scsih_tm_volume_tr_complete(9), _scsih_issue_delayed_event_ack(9),
_scsih_issue_delayed_sas_io_unit_ctrl(9),
mpt3sas_check_for_pending_internal_cmds(9),
_scsih_check_for_pending_tm(9), _scsih_check_topo_delete_events(9),
_scsih_check_pcie_topo_remove_events(9),
_scsih_set_volume_delete_flag(9), _scsih_set_volume_handle_for_tr(9),
_scsih_check_ir_config_unhide_events(9),
_scsih_check_volume_delete_events(9), _scsih_temp_threshold_events(9),
_scsih_flush_running_cmds(9), _scsih_setup_eedp(9),
_scsih_eedp_error_handling(9), scsih_qcmd(9), _scsih_normalize_sense(9),
_scsih_scsi_ioc_info(9), _scsih_turn_on_pfa_led(9),
_scsih_turn_off_pfa_led(9), _scsih_send_event_to_turn_on_pfa_led(9),
_scsih_smart_predicted_fault(9), _scsih_io_done(9),
_scsih_update_vphys_after_reset(9),
_scsih_get_port_table_after_reset(9),
_scsih_look_and_get_matched_port_entry(9),
_scsih_del_phy_part_of_anther_port(9),
_scsih_add_or_del_phys_from_existing_port(9), _scsih_del_dirty_vphy(9),
_scsih_del_dirty_port_entries(9), _scsih_sas_port_refresh(9),
_scsih_alloc_vphy(9), _scsih_sas_host_refresh(9),
_scsih_sas_host_add(9), _scsih_expander_add(9),
mpt3sas_expander_remove(9), _scsih_done(9), _scsi_send_scsi_io(9),
_scsih_determine_disposition(9), _scsih_report_luns(9),
_scsih_start_unit(9), _scsih_test_unit_ready(9),
_scsih_ata_pass_thru_idd(9), _scsih_wait_for_device_to_become_ready(9),
_scsih_wait_for_target_to_become_ready(9),
_scsih_check_access_status(9), _scsih_check_device(9),
_scsih_add_device(9), _scsih_remove_device(9),
_scsih_sas_topology_change_event_debug(9),
_scsih_sas_topology_change_event(9),
_scsih_sas_device_status_change_event_debug(9),
_scsih_sas_device_status_change_event(9),
_scsih_check_pcie_access_status(9),
_scsih_pcie_device_remove_from_sml(9), _scsih_pcie_check_device(9),
_scsih_pcie_add_device(9), _scsih_pcie_topology_change_event_debug(9),
_scsih_pcie_topology_change_event(9),
_scsih_pcie_device_status_change_event_debug(9),
_scsih_pcie_device_status_change_event(9),
_scsih_sas_enclosure_dev_status_change_event_debug(9),
_scsih_sas_enclosure_dev_status_change_event(9),
_scsih_sas_broadcast_primitive_event(9), _scsih_sas_discovery_event(9),
_scsih_sas_device_discovery_error_event(9),
_scsih_pcie_enumeration_event(9), _scsih_ir_fastpath(9),
_scsih_reprobe_lun(9), _scsih_sas_volume_add(9),
_scsih_sas_volume_delete(9), _scsih_sas_pd_expose(9),
_scsih_sas_pd_hide(9), _scsih_sas_pd_delete(9), _scsih_sas_pd_add(9),
_scsih_sas_ir_config_change_event_debug(9),
_scsih_sas_ir_config_change_event(9), _scsih_sas_ir_volume_event(9),
_scsih_sas_ir_physical_disk_event(9),
_scsih_sas_ir_operation_status_event_debug(9),
_scsih_sas_ir_operation_status_event(9), _scsih_prep_device_scan(9),
_scsih_update_device_qdepth(9), _scsih_mark_responding_sas_device(9),
_scsih_create_enclosure_list_after_reset(9),
_scsih_search_responding_sas_devices(9),
_scsih_mark_responding_pcie_device(9),
_scsih_search_responding_pcie_devices(9),
_scsih_mark_responding_raid_device(9),
_scsih_search_responding_raid_devices(9),
_scsih_mark_responding_expander(9),
_scsih_search_responding_expanders(9),
_scsih_remove_unresponding_devices(9),
_scsih_scan_for_devices_after_reset(9),
mpt3sas_scsih_pre_reset_handler(9),
mpt3sas_scsih_clear_outstanding_scsi_tm_commands(9),
mpt3sas_scsih_reset_done_handler(9), _mpt3sas_fw_work(9),
_firmware_event_work(9), mpt3sas_scsih_event_callback(9),
_scsih_expander_node_remove(9), _scsih_nvme_shutdown(9),
_scsih_ir_shutdown(9), _scsih_get_shost_and_ioc(9), scsih_remove(9),
scsih_shutdown(9), _scsih_probe_boot_devices(9), _scsih_probe_raid(9),
_scsih_probe_sas(9), get_next_pcie_device(9),
pcie_device_make_active(9), _scsih_probe_pcie(9),
_scsih_probe_devices(9), scsih_scan_start(9),
_scsih_complete_devices_scanning(9), scsih_scan_finished(9),
scsih_map_queues(9), _scsih_determine_hba_mpi_version(9),
_scsih_probe(9), scsih_suspend(9), scsih_resume(9),
scsih_pci_slot_reset(9), scsih_pci_resume(9), scsih_pci_mmio_enabled(9),
scsih_init(9), scsih_exit(9), _mpt3sas_init(9), _mpt3sas_exit(9)
like. are you gonna read all of those? probably not. but they're all here and that's what matters π
okay that's the whole page bestie, go forth and handle your PCI errors with confidence β¨
this came out of the kernel API manual, living at ./drivers/scsi/mpt3sas, dated October 2026 β mwah, stan the mpt3sas driver for me ππ
π¦ 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