mpt_do_ioc_recovery(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… mpt_do_ioc_recovery β€” Kernel API Manual, section 9 πŸŽ€

okay so bestie, gather round, because this one is from the Kernel API Manual (that's section 9 of the manual, iykyk) and it's literally the glow-up routine for your MPT adapter ✨


🌸 NAME 🌸

mpt_do_ioc_recovery β€” the function that initializes or recovers your MPT adapter. no cap, that's the whole vibe: wake it up or bring it back from the brink πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

int mpt_do_ioc_recovery (MPT_ADAPTER *ioc , u32 reason , int sleepFlag
);

✨ ARGUMENTS ✨

  • ioc β€” a pointer to the MPT adapter structure. this is your main character fr, everything happens to it 🫢
  • reason β€” the event word / reason. like, why are we doing this, bestie πŸ’­
  • sleepFlag β€” if it's CAN_SLEEP, we use schedule; otherwise we use udelay. pick your coping mechanism 😴

πŸ’œ DESCRIPTION πŸ’œ

So this routine does all the steps necessary to bring the IOC to a OPERATIONAL state. like, every single one. the whole getting-ready-with-me montage πŸ”₯

It also pre-fetches the LAN MAC address of a Fibre Channel MPT adapter. little bonus fetch, we love a multitasker πŸŽ€


πŸ‘‘ RETURN πŸ‘‘

the return values, and you will be memorizing these, bestie:

  • 0 β€” success, slay ✨
  • -1 β€” failed to get board READY 😭
  • -2 β€” READY but IOCFacts Failed πŸ’€
  • -3 β€” READY but PrimeIOCFifos Failed πŸ™ˆ
  • -4 β€” READY but IOCInit Failed 😬
  • -5 β€” failed to enable_device and/or request_selected_regions
  • -6 β€” failed to upload firmware 🫠
heads up: READY is doing a lot of heavy lifting in this list. the board came up, but the next step fumbled. rude but valid.

🌈 SEE ALSO 🌈

okay this list is long and honestly iconic β€” the kernel file lives at ./drivers/message/fusion/mptbase.c, and here's the entire friend group 🧚:

mpt_get_cb_idx(9), mpt_is_discovery_complete(9), mpt_remove_dead_ioc_func(9), mpt_fault_reset_work(9), mpt_interrupt(9), mptbase_reply(9), mpt_register(9), mpt_deregister(9), mpt_event_register(9), mpt_event_deregister(9), mpt_reset_register(9), mpt_reset_deregister(9), mpt_device_driver_register(9), mpt_device_driver_deregister(9), mpt_get_msg_frame(9), mpt_put_msg_frame(9), mpt_put_msg_frame_hi_pri(9), mpt_free_msg_frame(9), mpt_add_sge(9), mpt_add_sge_64bit(9), mpt_add_sge_64bit_1078(9), mpt_add_chain(9), mpt_add_chain_64bit(9), mpt_send_handshake_request(9), mpt_host_page_access_control(9), mpt_host_page_alloc(9), mpt_verify_adapter(9), mpt_get_product_name(9), mpt_mapresources(9), mpt_attach(9), mpt_detach(9), mpt_suspend(9), mpt_resume(9), mpt_detect_bound_ports(9), mpt_adapter_disable(9), mpt_adapter_dispose(9), MptDisplayIocCapabilities(9), MakeIocReady(9), mpt_GetIocState(9), GetIocFacts(9), GetPortFacts(9), SendIocInit(9), SendPortEnable(9), mpt_alloc_fw_memory(9), mpt_free_fw_memory(9), mpt_do_upload(9), mpt_downloadboot(9), KickStart(9), mpt_diag_reset(9), SendIocReset(9), initChainBuffers(9), PrimeIocFifos(9), mpt_handshake_req_reply_wait(9), WaitForDoorbellAck(9), WaitForDoorbellInt(9), WaitForDoorbellReply(9), GetLanConfigPages(9), mptbase_sas_persist_operation(9), GetIoUnitPage2(9), mpt_GetScsiPortSettings(9), mpt_readScsiDevicePageHeaders(9), mpt_inactive_raid_list_free(9), mpt_inactive_raid_volumes(9), mpt_raid_phys_disk_pg0(9), mpt_raid_phys_disk_get_num_paths(9), mpt_raid_phys_disk_pg1(9), mpt_findImVolumes(9), SendEventNotification(9), SendEventAck(9), mpt_config(9), mpt_ioc_reset(9), procmpt_create(9), procmpt_destroy(9), mpt_print_ioc_summary(9), mpt_set_taskmgmt_in_progress_flag(9), mpt_clear_taskmgmt_in_progress_flag(9), mpt_halt_firmware(9), mpt_SoftResetHandler(9), mpt_Soft_Hard_ResetHandler(9), mpt_HardResetHandler(9), ProcessEventNotification(9), mpt_fc_log_info(9), mpt_spi_log_info(9), mpt_sas_log_info(9), mpt_iocstatus_info_config(9), mpt_iocstatus_info(9), fusion_init(9), fusion_exit(9)


that's the whole thing, bestie. go forth and bring that IOC to OPERATIONAL πŸ’…

source: ./drivers/message/fusion β€” version dated October 2026, manual page mpt_do_ioc_recovery(9). mwah, love u, bye πŸ“πŸ’–
πŸ“¦ where this page comes from