mpi3mr_bsg_process_mpt_cmds(9)
π mpi3mr_bsg_process_mpt_cmds β the MPI Pass-through BSG handler, explained (kernel API manual, bestie edition)
okay so real talk, this one lives in the Kernel API Manual, and it's basically the bouncer at the club for MPI pass-through commands β¨
πΈ NAME πΈ
mpi3mr_bsg_process_mpt_cmds β the MPI Pass through BSG handler. that's it, that's the name π
β¨ SYNOPSIS β¨
long mpi3mr_bsg_process_mpt_cmds (struct bsg_job *job );
π¦ ARGUMENTS π¦
jobβ your BSG job reference π that's the whole argument list, she's low maintenance.
π DESCRIPTION π
so this function is the top level handler for the MPI Pass through command. like, main character energy fr fr β everything comes through her first π
here's the vibe check she runs, in order:
- does the basic validation of the input data buffers β
- identifies the given buffer types and the MPI command π
- allocates DMAable memory for the user-given buffers π§
- constructs the SGL properly (yes, properly, she's not doing this sloppy) π
- passes the command to the firmware π
and then? once the MPI command is completed, the driver copies the data β if there is any β plus the reply and sense information back into the user-provided buffers. π«Ά
β οΈ ok but the dramatic part: if the command is timed out, she issues a controller reset before returning. no cap. that's a whole controller reset. π
π₯ RETURN π₯
0 on success, and proper error codes on failure. periodt. π
π SEE ALSO π
the source file she actually lives in:
- Kernel file
./drivers/scsi/mpi3mr/mpi3mr_app.cπ
and the whole extended fam β every single one, no skipping, they're all iconic π:
mpi3mr_alloc_trace_buffer(9)mpi3mr_alloc_diag_bufs(9)mpi3mr_issue_diag_buf_post(9)mpi3mr_post_diag_bufs(9)mpi3mr_issue_diag_buf_release(9)mpi3mr_process_trigger(9)mpi3mr_global_trigger(9)mpi3mr_scsisense_trigger(9)mpi3mr_event_trigger(9)mpi3mr_reply_trigger(9)mpi3mr_get_num_trigger(9)mpi3mr_refresh_trigger(9)mpi3mr_release_diag_bufs(9)mpi3mr_set_trigger_data_in_hdb(9)mpi3mr_set_trigger_data_in_all_hdb(9)mpi3mr_hdbstatuschg_evt_th(9)mpi3mr_diag_buffer_for_type(9)mpi3mr_bsg_pel_abort(9)mpi3mr_bsg_verify_adapter(9)mpi3mr_bsg_refresh_hdb_triggers(9)mpi3mr_bsg_upload_hdb(9)mpi3mr_bsg_repost_hdb(9)mpi3mr_bsg_query_hdb(9)mpi3mr_enable_logdata(9)mpi3mr_get_logdata(9)mpi3mr_bsg_pel_enable(9)mpi3mr_get_all_tgt_info(9)mpi3mr_get_change_count(9)mpi3mr_bsg_adp_reset(9)mpi3mr_bsg_populate_adpinfo(9)mpi3mr_bsg_process_drv_cmds(9)mpi3mr_total_num_ioctl_sges(9)mpi3mr_bsg_build_sgl(9)mpi3mr_get_nvme_data_fmt(9)mpi3mr_build_nvme_sgl(9)mpi3mr_build_nvme_prp(9)mpi3mr_map_data_buffer_dma(9)mpi3mr_app_save_logdata_th(9)mpi3mr_bsg_request(9)mpi3mr_bsg_exit(9)mpi3mr_bsg_node_release(9)mpi3mr_bsg_init(9)version_fw_show(9)fw_queue_depth_show(9)op_req_q_count_show(9)reply_queue_count_show(9)reply_qfull_count_show(9)logging_level_show(9)logging_level_store(9)adp_state_show(9)fwfault_count_show(9)sas_address_show(9)device_handle_show(9)persistent_id_show(9)sas_ncq_prio_supported_show(9)sas_ncq_prio_enable_show(9)
iykyk π¦
okay and for the lil sign-off: this page came from ./drivers/scsi/mpi3mr, dated October 2026, and it's the mpi3mr_bsg_process_mpt_cmds(9) manual page π stay hydrated, back up your data, and don't time out your commands 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