mpi3mr_expa..._sas_address(9)
π
mpi3mr_expander_find_by_sas_address(9) β Kernel API Manual β¨
okay so bestie, welcome to the Kernel API Manual, and today's main character is mpi3mr_expander_find_by_sas_address β the little function that goes snooping through the mpi3mr driver looking for a specific SAS expander. it's giving "where's my friend" energy but for hardware ππ
πΈ NAME πΈ
mpi3mr_expander_find_by_sas_address β literally the SAS expander search, no cap π¦
β¨ SYNOPSIS β¨
struct mpi3mr_sas_node * mpi3mr_expander_find_by_sas_address (struct
mpi3mr_ioc *mrioc , u64 sas_address , struct mpi3mr_hba_port *hba_port
);
like, it hands you back a pointer to a struct mpi3mr_sas_node, or nothing at all. those are the only two moods π
π ARGUMENTS π
mriocβ the adapter instance reference. it's the controller you're working with, your main connection to the whole mpi3mr situation π«Άsas_addressβ the SAS address of the expander you're hunting for. au64, so it's a big ol' number, and it's the one thing that actually identifies your target π₯hba_portβ the HBA port entry. the port context that goes along with the search π
β RETURN β
a valid SAS expander node... or NULL. that's it. found it, or didn't. iconic binary behaviour honestly π
ngl bestie, always check for NULL before you go dereferencing. the function is literally telling you it might come back empty-handed π
π¦ SEE ALSO π¦
the kernel file this lives in: ./drivers/scsi/mpi3mr/mpi3mr_transport.c β that's the whole neighborhood, go say hi π
and now the full friend group, everybody in the mpi3mr transport clique:
mpi3mr_post_transport_req(9)mpi3mr_report_manufacture(9)__mpi3mr_expander_find_by_handle(9)mpi3mr_is_expander_device(9)mpi3mr_get_sas_address(9)__mpi3mr_get_tgtdev_by_addr(9)mpi3mr_get_tgtdev_by_addr(9)mpi3mr_remove_device_by_sas_address(9)__mpi3mr_get_tgtdev_by_addr_and_rphy(9)__mpi3mr_sas_node_find_by_sas_address(9)mpi3mr_parent_present(9)mpi3mr_convert_phy_link_rate(9)mpi3mr_delete_sas_phy(9)mpi3mr_add_sas_phy(9)mpi3mr_add_phy_to_an_existing_port(9)mpi3mr_delete_sas_port(9)mpi3mr_del_phy_from_an_existing_port(9)mpi3mr_sas_port_sanity_check(9)mpi3mr_set_identify(9)mpi3mr_add_host_phy(9)mpi3mr_add_expander_phy(9)mpi3mr_alloc_hba_port(9)mpi3mr_get_hba_port_by_id(9)mpi3mr_update_links(9)mpi3mr_sas_host_refresh(9)mpi3mr_sas_host_add(9)mpi3mr_sas_port_add(9)mpi3mr_sas_port_remove(9)struct host_port(9)mpi3mr_update_mr_sas_port(9)mpi3mr_refresh_sas_ports(9)mpi3mr_refresh_expanders(9)mpi3mr_expander_node_add(9)mpi3mr_expander_add(9)mpi3mr_expander_node_remove(9)mpi3mr_expander_remove(9)mpi3mr_get_sas_negotiated_logical_linkrate(9)mpi3mr_report_tgtdev_to_sas_transport(9)mpi3mr_remove_tgtdev_from_sas_transport(9)mpi3mr_get_port_id_by_sas_phy(9)mpi3mr_get_port_id_by_rphy(9)mpi3mr_get_expander_phy_error_log(9)mpi3mr_transport_get_linkerrors(9)mpi3mr_transport_get_enclosure_identifier(9)mpi3mr_transport_get_bay_identifier(9)mpi3mr_expander_phy_control(9)mpi3mr_transport_phy_reset(9)mpi3mr_transport_phy_enable(9)mpi3mr_transport_phy_speed(9)mpi3mr_map_smp_buffer(9)mpi3mr_unmap_smp_buffer(9)mpi3mr_transport_smp_handler(9)
like, that's the whole squad, lowkey obsessed with how many of them there are π§π
and that's the page!! mwah π this one shipped from ./drivers/scsi/mpi3mr back in October 2026 β dated and sourced, slay, periodt πβ¨π
π¦ 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