mpi3mr_sas_p...sanity_check(9)
π mpi3mr_sas_port_sanity_check(9) β the Kernel API Manual, bestie edition π
okay so you're in the Kernel API Manual and the function is literally called mpi3mr_sas_port_sanity_check β¨ (the header's lazy so it abbreviates it to mpi3mr_sas_p...sanity_check(9), iykyk). it's giving "quick vibe check before we let a new port in" π¦
β¨ NAME β¨
mpi3mr_sas_port_sanity_check β the sanity check that runs while adding a port π«Ά
πΈ SYNOPSIS πΈ
void mpi3mr_sas_port_sanity_check (struct mpi3mr_ioc *mrioc , struct
mpi3mr_sas_node *mr_sas_node , u64 sas_address , struct mpi3mr_hba_port
*hba_port );
it returns void, so likeβ¦ no receipts, no return value, we just vibe π
π¦ ARGUMENTS π¦
mriocβ the adapter instance reference, aka your main character ioc πmr_sas_nodeβ internal sas node object (an expander or the host, depending on the situation) β¨sas_addressβ the SAS address of the device/expander, au64, very official πhba_portβ the HBA port entry, the one holding the tea π
π₯ DESCRIPTION π₯
so here's the whole plot π: this function checks whether the Phys attached to a device with the given SAS address already belong to an existing sas port. and if they do? it removes those phys from that sas port. periodt. π
no cap, that's the entire lore β it's a sanity check, not a whole saga π
β RETURN β
None. literally nothing. it's giving "did my job, said nothing, left" π
π SEE ALSO π
bestie the friend group is huge, brace yourself π«Ά also the kernel file lives at ./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_add_phy_to_an_existing_port(9)mpi3mr_delete_sas_port(9)mpi3mr_del_phy_from_an_existing_port(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)
and that's a wrap, bestie β¨ this page came straight outta ./drivers/scsi/mpi3mr, dated October 2026, and the header's out here calling itself mpi3mr_sas_p...sanity_check(9) like it's too cool for full names π
mwah, go touch grass, ily ππ
π¦ 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