mpi3mr_expander_add(9)
π mpi3mr_expander_add(9) π
okay so bestie, welcome to the Kernel API Manual β this one's mpi3mr_expander_add(9) and it's literally the glow-up moment for an expander object β¨
π NAME π
mpi3mr_expander_add β Create expander object
like... it makes the expander. that's the whole vibe π
πΈ SYNOPSIS πΈ
int mpi3mr_expander_add (struct mpi3mr_ioc *mrioc , u16 handle );
π¦ ARGUMENTS π¦
mriocβ Adapter instance reference. it's your main character adapter, the one holding all the context π«Άhandleβ Expander firmware device handle. yes queen, the firmware's own lil ID for the device π₯
π§ DESCRIPTION π§
so the way this works: this function creates the expander object, stores it in sas_expander_list, and then exposes it to the SAS transport layer. it's giving "made in the back, debuted on the runway" π«
β RETURN β
0 for success, non-zero for failure. not me crying over a nonzero return value π
π SEE ALSO π
π the file itself
- Kernel file
./drivers/scsi/mpi3mr/mpi3mr_transport.c
π the whole friend group (yes, all of them, no skips)
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_expander_find_by_sas_address(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_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)
ok that's the whole page, no notes, go read the source bestie π«Ά
k bye, this was ./drivers/scsi/mpi3mr, from October 2026, and yes it's still mpi3mr_expander_add(9) β mwah πβ¨
π¦ 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