mpi3mr_proce...p_reply_desc(9)
π
mpi3mr_proce...p_reply_desc(9) β like, the Kernel API Manual entry, bestie π
Okay so picture this: you're deep in the mpi3mr driver source, the vibes are immaculate, and the hardware just handed you a reply descriptor. β¨ This page is your group chat briefing on what to do with it.
πΈ NAME πΈ
mpi3mr_process_op_reply_desc β the reply descriptor handler. that's it, that's the whole job. π«Ά
π¦ SYNOPSIS π¦
void mpi3mr_process_op_reply_desc (struct mpi3mr_ioc *mrioc , struct
mpi3_default_reply_descriptor *reply_desc , u64 *reply_dma , u16 qidx );
returns nothing, takes four things, moves on with its life. very main character energy honestly π₯
π ARGUMENTS π
mriocβ your adapter instance reference. the whole controller's vibe, basically. πreply_descβ the operational reply descriptor itself. the star of the show πreply_dmaβ a placeholder for the reply DMA address. it's holding the spot. it's doing its best π«‘qidxβ the operational queue index. which queue we're on, iykyk π
π DESCRIPTION π
So what does this function actually do? It processes the operational reply descriptor and, lowkey, identifies what type of descriptor it's looking at. π΅οΈββοΈ
Then β based on that descriptor β it maps the MPI3 request status over to a SCSI command status, and then it calls the scsi_done callback. periodt. that's the pipeline. π
β¨
No cap, that's the whole flow: descriptor in β type identified β status mapped β scsi_done called. π¦
β RETURN β
Nothing! Literally nothing. void lifestyle. it does the work and dips π«Άπ
π SEE ALSO π
Kernel file: ./drivers/scsi/mpi3mr/mpi3mr_os.c π
and now, the extended family. it's a big family. buckle up, bestie π
mpi3mr_host_tag_for_scmd(9),mpi3mr_scmd_from_host_tag(9),mpi3mr_clear_scmd_priv(9),mpi3mr_fwevt_free(9),mpi3mr_fwevt_get(9),mpi3mr_fwevt_put(9),mpi3mr_alloc_fwevt(9),mpi3mr_fwevt_add_to_list(9),mpi3mr_hdb_trigger_data_event(9),mpi3mr_fwevt_del_from_list(9),mpi3mr_dequeue_fwevt(9),mpi3mr_cancel_work(9),mpi3mr_cleanup_fwevt_list(9),mpi3mr_queue_qd_reduction_event(9),mpi3mr_invalidate_devhandles(9),mpi3mr_print_scmd(9),mpi3mr_flush_scmd(9),mpi3mr_count_dev_pending(9),mpi3mr_count_tgt_pending(9),mpi3mr_flush_host_io(9),mpi3mr_flush_cmds_for_unrecovered_controller(9)mpi3mr_alloc_tgtdev(9),mpi3mr_tgtdev_add_to_list(9),mpi3mr_tgtdev_del_from_list(9),__mpi3mr_get_tgtdev_by_handle(9),mpi3mr_get_tgtdev_by_handle(9),__mpi3mr_get_tgtdev_by_perst_id(9),mpi3mr_get_tgtdev_by_perst_id(9),__mpi3mr_get_tgtdev_from_tgtpriv(9),mpi3mr_set_io_divert_for_all_vd_in_tg(9),mpi3mr_print_device_event_notice(9),mpi3mr_remove_tgtdev_from_host(9),mpi3mr_report_tgtdev_to_host(9),mpi3mr_change_queue_depth(9),mpi3mr_update_sdev(9),mpi3mr_refresh_tgtdevs(9),mpi3mr_debug_dump_devpg0(9),mpi3mr_update_tgtdev(9)mpi3mr_devstatuschg_evt_bh(9),mpi3mr_devinfochg_evt_bh(9),mpi3mr_free_enclosure_list(9),mpi3mr_enclosure_find_by_handle(9),mpi3mr_process_trigger_data_event_bh(9),mpi3mr_encldev_add_chg_evt_debug(9),mpi3mr_encldev_add_chg_evt_bh(9),mpi3mr_sastopochg_evt_debug(9),mpi3mr_sastopochg_evt_bh(9),mpi3mr_pcietopochg_evt_debug(9),mpi3mr_pcietopochg_evt_bh(9),mpi3mr_logdata_evt_bh(9),mpi3mr_update_sdev_qd(9),mpi3mr_set_qd_for_all_vd_in_tg(9),mpi3mr_fwevt_bh(9),mpi3mr_fwevt_worker(9)mpi3mr_create_tgtdev(9),mpi3mr_flush_delayed_cmd_lists(9),mpi3mr_dev_rmhs_complete_iou(9),mpi3mr_dev_rmhs_complete_tm(9),mpi3mr_dev_rmhs_send_tm(9),mpi3mr_complete_evt_ack(9),mpi3mr_send_event_ack(9),mpi3mr_pcietopochg_evt_th(9),mpi3mr_sastopochg_evt_th(9),mpi3mr_devstatuschg_evt_th(9),mpi3mr_preparereset_evt_th(9),mpi3mr_energypackchg_evt_th(9),mpi3mr_cablemgmt_evt_th(9),mpi3mr_add_event_wait_for_device_refresh(9),mpi3mr_os_handle_events(9)mpi3mr_setup_eedp(9),mpi3mr_build_sense_buffer(9),mpi3mr_map_eedp_error(9),mpi3mr_get_chain_idx(9),mpi3mr_prepare_sg_scmd(9),mpi3mr_build_sg_scmd(9),mpi3mr_tm_response_name(9),mpi3mr_issue_tm(9),mpi3mr_bios_param(9),mpi3mr_map_queues(9),mpi3mr_get_fw_pending_ios(9),mpi3mr_print_pending_host_io(9),mpi3mr_wait_for_host_io(9),mpi3mr_setup_divert_ws(9)mpi3mr_eh_host_reset(9),mpi3mr_eh_bus_reset(9),mpi3mr_eh_target_reset(9),mpi3mr_eh_dev_reset(9),mpi3mr_eh_abort(9),mpi3mr_scan_start(9),mpi3mr_scan_finished(9),mpi3mr_sdev_destroy(9),mpi3mr_target_destroy(9),mpi3mr_sdev_configure(9),mpi3mr_sdev_init(9),mpi3mr_target_alloc(9),mpi3mr_check_return_unmap(9),mpi3mr_allow_scmd_to_fw(9),mpi3mr_qcmd(9),mpi3mr_init_drv_cmd(9),osintfc_mrioc_security_status(9)mpi3mr_probe(9),mpi3mr_remove(9),mpi3mr_shutdown(9),mpi3mr_suspend(9),mpi3mr_resume(9),mpi3mr_pcierr_error_detected(9),mpi3mr_pcierr_slot_reset(9),mpi3mr_pcierr_resume(9),mpi3mr_pcierr_mmio_enabled(9)
ok that's the whole list, no skips, no "etc." β we do not ghost references in this house π
and that's the page!! tysm for reading bestie, go forth and process those reply descriptors π
xoxo, this came out of ./drivers/scsi/mpi3mr, dated October 2026 β signed, sealed, and filed right next to mpi3mr_proce...p_reply_desc(9) in the Kernel API Manual ππ¦β¨
π¦ 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