mpi3mr_update_tgtdev(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… mpi3mr_update_tgtdev(9) πŸ’…

okay so bestie, welcome to the Kernel API Manual ✨ β€” this one's a little kernel function from the mpi3mr driver and honestly it's giving "quiet little worker bee that keeps the whole device list from falling apart" πŸπŸ’–


🌸 NAME 🌸

mpi3mr_update_tgtdev β€” the DevStatusChange evt bottomhalf, no cap πŸ’«


πŸŽ€ SYNOPSIS πŸŽ€

void mpi3mr_update_tgtdev (struct mpi3mr_ioc *mrioc , struct
       mpi3mr_tgt_dev *tgtdev , struct mpi3_device_page0 *dev_pg0 , bool
       is_added );

that's the whole signature bb, copy it exactly, do not touch a single character 🫢


✨ ARGUMENTS ✨

  • mrioc β€” the adapter instance reference πŸ’œ aka "which controller are we even talking about"
  • tgtdev β€” the target device's internal structure β€” the driver's own lil home for that device 🏠
  • dev_pg0 β€” the new device page0 πŸ“„ (fresh out of firmware, still warm)
  • is_added β€” a flag that tells you the device was just added πŸ†• like, brand new, first day energy

🌈 DESCRIPTION 🌈

So what this icon actually does πŸ‘‘: it takes all the info from device page0 and updates it into the driver's cached target device structure πŸ’Ύβœ¨

Everything the driver remembers about that device? Yeah. It gets refreshed from page0 and lives in the cached struct. Lowkey essential glue work, highkey slay 🧚


πŸ’€ RETURN πŸ’€

Nothing. That's it. It returns void, bestie β€” no value, no drama, no return-code to check πŸ™ˆ (so don't go doing if (mpi3mr_update_tgtdev(...)) because there is literally nothing to compare, ok?) 😭


🌟 SEE ALSO 🌟

first up, the kernel file where all this lives:

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

and now the full friend group β€” every single one of these gremlins, in order, no skipping πŸ’…:

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_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_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. the whole group chat 😀 no one gets left on read πŸ’–


anyway that's the page!! this lil beauty ships out of ./drivers/scsi/mpi3mr and it's dated October 2026 🌸 so yeah, from the future, obviously πŸ’… go forth and update those cached target devices bestie, mwah πŸ«Άβœ¨πŸŽ€

πŸ“¦ where this page comes from