mpt3sas_conf...e_device_pg2(9)
π
mpt3sas_config_get_pcie_device_pg2 β obtain pcie device page 2 β¨
okay bestie, so this is a page from the Kernel API Manual, and the page is literally called mpt3sas_conf...e_device_pg2(9) (yes the title is truncated, no that's not my fault, the man page did that π). Anyway. Sit down, grab a strawberry π, we're getting a PCIe device page 2 out of the firmware and it's gonna slay.
πΈ SYNOPSIS πΈ
int mpt3sas_config_get_pcie_device_pg2 (struct MPT3SAS_ADAPTER *ioc ,
Mpi2ConfigReply_t *mpi_reply , Mpi26PCIeDevicePage2_t *config_page , u32
form , u32 handle );
look at that signature. iconic. five arguments, one int coming back, zero notes. π
π ARGUMENTS π
iocβ the per adapter object. it's giving "this is the HBA we're talking about" energy πmpi_replyβ the reply MF payload that the firmware hands back to you. yes mf. that's what the man page says, we don't ask questions π«Άconfig_pageβ the contents of the config page. this is where the goods land π₯formβGET_NEXT_HANDLEorHANDLE. like, pick your vibe: iterate to the next handle, or use the handle you already have π«handleβ the device handle. the actual thing you're asking about π¦
π CONTEXT π
sleep.
that's it. that's the whole context section. she sleeps π΄ β meaning this call can sleep, so don't you dare call it from somewhere that can't. that's not me being dramatic, that's just true.
β RETURN β
0 for success, non-zero for failure. that's the whole deal, no cap. if you get 0 you ate π₯, if you get non-zero, well... it's giving "check your handle, bestie" π
π SEE ALSO π
okay this is the long one, hydrate first π§ β all of these live in the kernel file ./drivers/scsi/mpt3sas/mpt3sas_config.c:
struct config_request(9)_config_display_some_debug(9)_config_alloc_config_dma_memory(9)_config_free_config_dma_memory(9)mpt3sas_config_done(9)_config_request(9)mpt3sas_config_get_manufacturing_pg0(9)mpt3sas_config_get_manufacturing_pg1(9)mpt3sas_config_get_manufacturing_pg10(9)mpt3sas_config_get_manufacturing_pg11(9)mpt3sas_config_set_manufacturing_pg11(9)mpt3sas_config_get_bios_pg2(9)mpt3sas_config_get_bios_pg3(9)mpt3sas_config_set_bios_pg4(9)mpt3sas_config_get_bios_pg4(9)mpt3sas_config_get_iounit_pg0(9)mpt3sas_config_get_iounit_pg1(9)mpt3sas_config_set_iounit_pg1(9)mpt3sas_config_get_iounit_pg3(9)mpt3sas_config_get_iounit_pg7(9)mpt3sas_config_get_iounit_pg8(9)mpt3sas_config_get_ioc_pg8(9)mpt3sas_config_get_ioc_pg1(9)mpt3sas_config_set_ioc_pg1(9)mpt3sas_config_get_sas_device_pg0(9)mpt3sas_config_get_pcie_device_pg0(9)mpt3sas_config_get_pcie_iounit_pg1(9)mpt3sas_config_get_number_hba_phys(9)mpt3sas_config_get_sas_iounit_pg0(9)mpt3sas_config_get_sas_iounit_pg1(9)mpt3sas_config_set_sas_iounit_pg1(9)mpt3sas_config_get_expander_pg0(9)mpt3sas_config_get_expander_pg1(9)mpt3sas_config_get_enclosure_pg0(9)mpt3sas_config_get_phy_pg0(9)mpt3sas_config_get_phy_pg1(9)mpt3sas_config_get_raid_volume_pg1(9)mpt3sas_config_get_number_pds(9)mpt3sas_config_get_raid_volume_pg0(9)mpt3sas_config_get_phys_disk_pg0(9)mpt3sas_config_get_driver_trigger_pg0(9)_config_set_driver_trigger_pg0(9)mpt3sas_config_update_driver_trigger_pg0(9)mpt3sas_config_get_driver_trigger_pg1(9)_config_set_driver_trigger_pg1(9)mpt3sas_config_update_driver_trigger_pg1(9)mpt3sas_config_get_driver_trigger_pg2(9)_config_set_driver_trigger_pg2(9)mpt3sas_config_update_driver_trigger_pg2(9)mpt3sas_config_get_driver_trigger_pg3(9)_config_set_driver_trigger_pg3(9)mpt3sas_config_update_driver_trigger_pg3(9)mpt3sas_config_get_driver_trigger_pg4(9)_config_set_driver_trigger_pg4(9)mpt3sas_config_update_driver_trigger_pg4(9)mpt3sas_config_get_volume_handle(9)mpt3sas_config_get_volume_wwid(9)
like I said. a whole friend group π
real talk: sleep. in CONTEXT is the one thing here that will actually bite you if you ignore it. process context only, bestie. π§
and that's the page!! π it lives under ./drivers/scsi/mpt3sas, dated October 2026, from the Kernel API Manual β mwah, go get your page 2, iykyk πβ¨π¦
π¦ 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