mpi3mr_sdev_destroy(9)
π mpi3mr_sdev_destroy(9) β Kernel API Manual π
okay so bestie, welcome to a tiny little corner of the Kernel API Manual β this is mpi3mr_sdev_destroy(9), and it is literally the cleanup queen of the mpi3mr driver. she's short, she's sweet, she's giving "last one out, turn off the lights" energy. β¨
π NAME π
mpi3mr_sdev_destroy β the Slave destroy callback handler. yes that's her whole job title. iconic of her honestly.
π¦ SYNOPSIS π¦
void mpi3mr_sdev_destroy (struct scsi_device *sdev );
that's it. that's the whole signature. no cap. π
πΈ ARGUMENTS πΈ
sdevβ a SCSI device reference. this is the one (1) thing you hand her, and she takes it from there, no questions asked. π«Ά
β¨ DESCRIPTION β¨
bestie. she does exactly two things and she does them flawlessly: she cleans up, and she frees. specifically, the per device (lun) private data. that's the entire vibe. cleanup and free, cleanup and free, main character behaviour honestly. π§Ήπ
no drama, no extra lore, no hidden side quests β just tidy up that lun's private data and let it go. periodt. π₯
β RETURN β
Nothing. like, genuinely nothing. she returns void. don't @ her. π
π SEE ALSO π
okay this is the part where the friend group gets MASSIVE. buckle up. π
first up, her home base β the kernel file:
./drivers/scsi/mpi3mr/mpi3mr_os.c
and then the whole extended crew:
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_process_op_reply_desc(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_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)
like I said. HUGE friend group. she knows everyone at the function. ππ¦
ngl bestie this one is genuinely the easiest page in the whole set β one arg, zero return, one job. she ate and left no crumbs. πβ¨
and that's a wrap!! this page lives in ./drivers/scsi/mpi3mr, it's dated October 2026, it's page mpi3mr_sdev_destroy(9) out of the Kernel API Manual, and it was brought to you by the mpi3mr driver, which is the real MVP here fr fr. mwah πππ
π¦ 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