mpi3mr_add_p...xisting_port(9)
β¨ mpi3mr_add_p...xisting_port(9) β¨
okay bestie so this is a page from the Kernel API Manual and the function is literally called mpi3mr_add_phy_to_an_existing_port β yes it's a mouthful, no we're not renaming it, the kernel said what it said π
π NAME π
mpi3mr_add_phy_to_an_existing_port β add phy to existing port
like. that's it. that's the whole job. and she does it flawlessly. π
π¦ SYNOPSIS π¦
void mpi3mr_add_phy_to_an_existing_port (struct mpi3mr_ioc *mrioc ,
struct mpi3mr_sas_node *mr_sas_node , struct mpi3mr_sas_phy *mr_sas_phy
, u64 sas_address , struct mpi3mr_hba_port *hba_port );
no return value, no drama, just vibes and pointers β¨
πΈ ARGUMENTS πΈ
this is the part where you meet the whole friend group π«Ά every single one matters, no cap:
mriocβ the adapter instance reference. the main character, honestly. everything routes through her πmr_sas_nodeβ the internal sas node object (expander or host). iykyk πmr_sas_phyβ the internal Phy object *, bestie. yes the asterisk is in the original, we don't question the asterisk πsas_addressβ the SAS address of the device/expander where the phy needs to be added to. lowkey the important one π―hba_portβ the HBA port entry. let her in, she's on the list π
β RETURN β
None. β that's it. she gives you nothing back and honestly? iconic behaviour. no return value, no notes, periodt. π₯
π§ SEE ALSO π§
the whole extended universe, fr fr β plus the kernel file where the magic lives: ./drivers/scsi/mpi3mr/mpi3mr_transport.c
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_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)
bestie go read literally all of these. it's giving "syllabus week" energy but they're all bangers, trust π
that's the whole page!! π¦π
this little masterpiece lives under ./drivers/scsi/mpi3mr, dated October 2026, and it's filed as mpi3mr_add_p...xisting_port(9). slay, go add some phys to some existing ports, you absolute legend πβ¨π
π¦ 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