mpi3mr_shutdown(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… mpi3mr_shutdown(9) β€” from the Kernel API Manual, bestie ✨

okay so real talk, this is a page straight out of the Kernel API Manual, and it's about mpi3mr_shutdown β€” yes, the one with the (9) after it, that's the section number, we stan a properly cited manpage πŸŽ€


🌸 NAME 🌸

mpi3mr_shutdown β€” the PCI shutdown callback. that's it, that's the whole vibe πŸ¦‹


✨ SYNOPSIS ✨

void mpi3mr_shutdown (struct pci_dev *pdev );

like, it takes one thing and returns literally nothing. minimalism. main character energy πŸ’…


🫢 ARGUMENTS 🫢

  • pdev β€” the PCI device instance. that's your lil guy. the device. the whole reason we're here πŸ₯Ί

πŸ’– DESCRIPTION πŸ’–

so what does it actually do? it frees up all memory and resources associated with the controller. every last one. it's giving spring cleaning, it's giving "we're so done here", and honestly? iconic 🌈

no cap, this is the cleanup era β€” everything tied to the controller gets released ✨

⭐ RETURN ⭐

Nothing. like, not "0", not a pointer, not a cute little status code β€” literally nothing. void. the absence of a return value. we love a function that knows what it is πŸ’€


πŸ‘‘ SEE ALSO πŸ‘‘

okay bestie, buckle up, because there are a LOT of friends in this list and every single one of them is getting their moment πŸŽ€

first up, the kernel file itself:

Kernel file ./drivers/scsi/mpi3mr/mpi3mr_os.c

and then the whole squad, fr fr β€” here they all are, exactly as they're written:

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_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_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… the way that list just keeps going 😭 iykyk. anyway, every single one of those is a real reference, don't come for me πŸ’œ


and that's the page!! πŸ’– this lil beauty lives over in ./drivers/scsi/mpi3mr, dated October 2026 β€” so go forth, free your controller's memory and resources, and slay βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from