mpt3sas_get_sdev_by_handle(9)
π mpt3sas_get_sdev_by_handle(9) β sas device search π¦
okay so real talk, this is a page from the Kernel API Manual (section 9, kernel internals, we're in the deep end bestie and it's honestly iconic in here). Let's get into it β¨
πΈ NAME πΈ
mpt3sas_get_sdev_by_handle β sas device search, literally what it says on the tin π
β¨ SYNOPSIS β¨
struct _sas_device * mpt3sas_get_sdev_by_handle (struct MPT3SAS_ADAPTER
*ioc , u16 handle );
so you hand it an adapter and a handle and it hands you back a struct _sas_device *, slay π
π«Ά ARGUMENTS π«Ά
iocβ the per adapter object. like, the main character of your adapter's whole life fr πhandleβ the sas device handle, and no you don't make this yourself, it's assigned by firmware π
π₯ CONTEXT π₯
the calling function should acquire ioc->sas_device_lock before doing any of this. this is not a drill bestie, take the lock π no cap, skipping it is giving chaos gremlin energy and you do not want that π
π DESCRIPTION π
so here's the vibe: this searches for a sas_device based on sas_address, then returns the sas_device object. that's it, that's the whole function, and honestly? she's efficient π β¨
π¦ SEE ALSO π¦
bestie. sit down. grab a snack π. this list is long long, like, the whole mpt3sas_scsih.c family reunion, and every single one of them had to come:
- Kernel file
./drivers/scsi/mpt3sas/mpt3sas_scsih.c 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)_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_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)
and that's the whole friend group ππ
okay byeee, this page lives at ./drivers/scsi/mpt3sas, dated October 2026, and she's filed under mpt3sas_get_sdev_by_handle(9) β mwah, go take your lock and stay hydrated π§βπ
π¦ 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