mpi3mr_cfg_s..._io_unit_pg1(9)
π mpi3mr_cfg_set_sas_io_unit_pg1 π
okay so bestie, welcome to the Kernel API Manual page for mpi3mr_cfg_set_sas_io_unit_pg1 β yes that's a mouthful, yes we're gonna get through it together, and yes it's giving "I memorized the whole driver source" main character energy π
β¨ NAME β¨
mpi3mr_cfg_set_sas_io_unit_pg1 β literally just Write SASIOUnit page1. that's the whole vibe. it writes the page. slay π«Ά
πΈ SYNOPSIS πΈ
int mpi3mr_cfg_set_sas_io_unit_pg1 (struct mpi3mr_ioc *mrioc , struct
mpi3_sas_io_unit_page1 *sas_io_unit_pg1 , u16 pg_sz );
like, no cap, that's the whole signature. three args, one int coming back at you π
π¦ ARGUMENTS π¦
mriocβ the adapter instance reference π this is your controller's whole little identity card.sas_io_unit_pg1β pointer to the SAS IO Unit page 1 that we're about to write β¨ it's the actual page data, bestie.pg_szβ size of the memory allocated to the page pointer π (so the function knows how much room it's working with, iykyk).
π DESCRIPTION π
okay so this is the handler for config page write for the SAS IO Unit page1. that's the whole job description and honestly? iconic.
what it does: this routine checks ioc_status to decide whether the page read is a success or not π β yes, "read", that's what the page says, we're not gonna argue with it, we're just reporting it fr fr.
and then β big one β this will modify both current and persistent page π so it's not just a vibe, it's an actual durable write. both. current and persistent. the way that it commits... periodt π
π₯ RETURN π₯
0on success π- non-zero on failure π
that's it. that's the return. binary mood.
π SEE ALSO π
Kernel file ./drivers/scsi/mpi3mr/mpi3mr_fw.c β and honestly, the entire friend group is here, so let's shout them all out π«Ά no skipping, we list every single one:
mpi3mr_get_reply_desc(9)mpi3mr_process_op_reply_q(9)mpi3mr_blk_mq_poll(9)mpi3mr_isr_poll(9)mpi3mr_request_irq(9)mpi3mr_setup_isr(9)mpi3mr_reset_rc_name(9)mpi3mr_reset_type_name(9)mpi3mr_is_fault_recoverable(9)mpi3mr_print_fault_info(9)mpi3mr_save_fault_info(9)mpi3mr_get_iocstate(9)mpi3mr_free_ioctl_dma_memory(9)mpi3mr_alloc_ioctl_dma_memory(9)mpi3mr_fault_uevent_emit(9)mpi3mr_clear_reset_history(9)mpi3mr_issue_and_process_mur(9)mpi3mr_revalidate_factsdata(9)mpi3mr_bring_ioc_ready(9)mpi3mr_soft_reset_success(9)mpi3mr_diagfault_success(9)mpi3mr_set_diagsave(9)mpi3mr_issue_reset(9)mpi3mr_admin_request_post(9)mpi3mr_free_op_req_q_segments(9)mpi3mr_free_op_reply_q_segments(9)mpi3mr_delete_op_reply_q(9)mpi3mr_alloc_op_reply_q_segments(9)mpi3mr_alloc_op_req_q_segments(9)mpi3mr_create_op_reply_q(9)mpi3mr_create_op_req_q(9)mpi3mr_create_op_queues(9)mpi3mr_op_request_post(9)mpi3mr_check_rh_fault_ioc(9)mpi3mr_sync_timestamp(9)mpi3mr_print_pkg_ver(9)mpi3mr_watchdog_work(9)mpi3mr_start_watchdog(9)mpi3mr_stop_watchdog(9)mpi3mr_setup_admin_qpair(9)mpi3mr_issue_iocfacts(9)mpi3mr_check_reset_dma_mask(9)mpi3mr_process_factsdata(9)mpi3mr_alloc_reply_sense_bufs(9)mpimr_initialize_reply_sbuf_queues(9)mpi3mr_issue_iocinit(9)mpi3mr_unmask_events(9)mpi3mr_issue_event_notification(9)mpi3mr_process_event_ack(9)mpi3mr_alloc_chain_bufs(9)mpi3mr_port_enable_complete(9)mpi3mr_issue_port_enable(9)mpi3mr_repost_diag_bufs(9)mpi3mr_read_tsu_interval(9)mpi3mr_print_ioc_info(9)mpi3mr_cleanup_resources(9)mpi3mr_setup_resources(9)mpi3mr_enable_events(9)mpi3mr_init_ioc(9)mpi3mr_reinit_ioc(9)mpi3mr_memset_op_reply_q_buffers(9)mpi3mr_memset_op_req_q_buffers(9)mpi3mr_memset_buffers(9)mpi3mr_free_mem(9)mpi3mr_issue_ioc_shutdown(9)mpi3mr_cleanup_ioc(9)mpi3mr_drv_cmd_comp_reset(9)mpi3mr_flush_drv_cmds(9)mpi3mr_pel_wait_post(9)mpi3mr_pel_get_seqnum_post(9)mpi3mr_pel_wait_complete(9)mpi3mr_pel_get_seqnum_complete(9)mpi3mr_check_op_admin_proc(9)mpi3mr_soft_reset_handler(9)mpi3mr_post_cfg_req(9)mpi3mr_process_cfg_req(9)mpi3mr_cfg_get_dev_pg0(9)mpi3mr_cfg_get_sas_phy_pg0(9)mpi3mr_cfg_get_sas_phy_pg1(9)mpi3mr_cfg_get_sas_exp_pg0(9)mpi3mr_cfg_get_sas_exp_pg1(9)mpi3mr_cfg_get_enclosure_pg0(9)mpi3mr_cfg_get_sas_io_unit_pg0(9)mpi3mr_cfg_get_sas_io_unit_pg1(9)mpi3mr_cfg_get_driver_pg1(9)mpi3mr_cfg_get_driver_pg2(9)
like I said β the whole group chat π and the file we're living in is ./drivers/scsi/mpi3mr π§
π‘ tiny heads-up bestie: this page lists the SAS IO Unit page1 write handler, and the description says it checks ioc_status to decide whether the page read is a success, and that it modifies both the current and the persistent page. that's straight from the page, no additions from me, okay? π
so yeah β that's the whole manpage, every flag, every argument, every cross-reference, nothing dropped, nothing invented π stay hydrated, read your kernel source, and remember: 0 on success, non-zero on failure, and you are always the main character π
written for the Kernel API Manual, sourced from ./drivers/scsi/mpi3mr, dated October 2026, and filed under mpi3mr_cfg_s..._io_unit_pg1(9) β mwah, bye bestie! ππ π
π¦ 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