mpi3mr_update_links(9)
π« mpi3mr_update_links(9) π«
okay so this is a page from the Kernel API Manual, and honestly? it's a whole little glow-up for SAS phys. stay with me bestie π«Ά
β¨ NAME β¨
mpi3mr_update_links β refreshing SAS phy link changes π
πΈ SYNOPSIS πΈ
void mpi3mr_update_links (struct mpi3mr_ioc *mrioc , u64
sas_address_parent , u16 handle , u8 phy_number , u8 link_rate , struct
mpi3mr_hba_port *hba_port );
no cap, that's the whole signature β void return, six args, we move π«
π ARGUMENTS π
mriocβ your adapter instance reference. it's giving "who am I doing this for" energy πsas_address_parentβ the SAS address of the parent expander or the host. like, where this phy lives, iykyk π¦handleβ the firmware device handle of the attached device. the firmware's own little ID tag for the device π₯phy_numberβ the phy number. yes, that's it. that's the whole description πlink_rateβ the new link rate. this is the actual change we're refreshing β¨hba_portβ the HBA port entry π
β RETURN β
None.
literally nothing comes back. void stays undefeated π
π¦ SEE ALSO π¦
first up, the kernel file where this lives:
Kernel file ./drivers/scsi/mpi3mr/mpi3mr_transport.cπ
and now the full bestie roll-call β every single one, no skipping, periodt:
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_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)
seriously, go read a couple of these. the transport layer is lowkey iconic once you get into it π§
that's the whole page, bestie β no hidden lore, no extra options, just a clean little phy-refresh function doing its thing π
mwah π this one shipped out of ./drivers/scsi/mpi3mr, dated October 2026, and it lives in the manual as mpi3mr_update_links(9) β catch you in the next one, love u, bye! ππ
π¦ 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