_scsih_check...nhide_events(9)
π _scsih_check_ir_config_unhide_events β NAME π
okay bestie, welcome to the Kernel API Manual (section 9, the big-kid section β¨). this page is _scsih_check_ir_config_unhide_events, and yes the header abbreviates her as _scsih_check...nhide_events(9) because even manpage titles need a cute nickname π
what does she do? she checks for UNHIDE events π«Ά that's the whole name, no cap.
β¨ SYNOPSIS β¨
void _scsih_check_ir_config_unhide_events (struct MPT3SAS_ADAPTER *ioc ,
Mpi2EventDataIrConfigChangeList_t *event_data );
she returns void (nothing back, she's not gonna text you first π
) and takes exactly two args. that's it. iconic.
π§ ARGUMENTS π§
iocβ the per adapter object π think of it as the adapter's whole personality/lore in one structevent_dataβ the event data payload β¨ literally the contents of the event that got handed over
π¦ CONTEXT π¦
interrupt time. not a drill π she runs in interrupt context, so behave accordingly β no sleeping, no vibing too long. lowkey this is the "you are HERE, in the interrupt, act like it" section.
π₯ DESCRIPTION π₯
so here's the tea π: this routine will send target reset to volume, and then, followed by, target resets to the PDs. that's the order, that's the plan, no notes.
she gets called when a PD has been removed, or when a volume has been deleted or removed π so basically: someone left the group chat and she's out here doing the cleanup.
here's the part you cannot skip, bestie β the dependency π: when the target reset is sent to volume, the PD target resets need to be queued to start upon completion of the volume target reset. so the PD resets wait their turn. they do not get to jump the queue. the volume reset goes first, the PD resets are queued up and start when she's done. periodt β¨
ngl this is the whole personality of the function: volume reset first, PD resets queued behind it. don't flip it, don't merge it, don't get creative π
π SEE ALSO π
okay this is the part where she tags literally everyone she knows π and i mean everyone β the whole mpt3sas squad, the kernel file she lives in, the enums, the structs, all of it. i put the full list down below verbatim, every single (9), because we do not leave a single bestie out of the credits π«Ά
the file she calls home: ./drivers/scsi/mpt3sas/mpt3sas_scsih.c β and the rest of the friend group:
enum device_responsive_state(9), 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_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_error_detected(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)
π reminder before you close the tab: this all runs at interrupt time, and the PD target resets are queued to start only upon completion of the volume target reset. those two facts are the whole vibe check of this page, iykyk.
okay that's the page!! π she ships from ./drivers/scsi/mpt3sas, dated October 2026, and her full title card at the bottom of the original reads _scsih_check...nhide_events(9) β so shoutout to the source tree, the version stamp, and the date, mwah π slay, go queue your resets in the right order π¦β¨
π¦ 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