_scsih_check_device(9)
π _scsih_check_device(9) π
hiii bestie okay so welcome to the Kernel API Manual, section 9 β this one's all about checking whether a device is even alive and responding, which honestly is the vibe check of the whole SCSI world πΈ
β¨ NAME β¨
_scsih_check_device β checking device responsiveness π
(yes that's it, that's the whole job: is the device okay or is it giving ghost)
π¦ SYNOPSIS π¦
void _scsih_check_device (struct MPT3SAS_ADAPTER *ioc , u64
parent_sas_address , u16 handle , u8 phy_number , u8 link_rate );
no cap, that's the whole signature β returns nothing, just vibes and side effects π«Ά
π ARGUMENTS π
iocβ the per adapter object, aka the main character of this whole driver, she holds everything πparent_sas_addressβ the sas address of the parent expander or the sas host β yep, the one who birthed this device into existencehandleβ the attached device handle, her little ID badge πͺͺphy_numberβ phy number, literally just the phy's number bestielink_rateβ the new link rate, like she's getting a glow-up at a different speed β‘
π SEE ALSO π
first up, the kernel file herself: ./drivers/scsi/mpt3sas/mpt3sas_scsih.c π β then grab a snack because this list is long, but we do not skip entries in this house, periodt π
so we've got 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) β still with me? good, because we're not done π
keep going: 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)
okay hydration break π then: _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_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) β half-ish way there bestie π§
next batch: _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)
and then: _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)
and the grand finale π: _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)
ate. consumed. every single one. no skips, we don't do that here πβ¨
heads up bestie: that SEE ALSO list is long long, but it's literally all cross-references into the same mpt3sas driver universe, so if one of them confuses you just come back and we'll read it together π«Ά
and that's the page!! this lil gem lives in ./drivers/scsi/mpt3sas, version vibes dated October 2026, and the manual section is _scsih_check_device(9) β go check those devices, queen ππ
π¦ 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