mpt_HardResetHandler(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… mpt_HardResetHandler(9) β€” like, the generic reset handler, bestie

okay so this page lives in the Kernel API Manual and honestly it's giving "one function, so much responsibility" energy. sit down, grab a strawberry, we're doing this πŸ“


✨ NAME ✨

mpt_HardResetHandler β€” the generic reset handler, no cap. it's literally the reset handler. generic edition.


πŸ¦‹ SYNOPSIS πŸ¦‹

int mpt_HardResetHandler (MPT_ADAPTER *ioc , int sleepFlag );

πŸŽ€ ARGUMENTS πŸŽ€

  • ioc β€” a pointer to the MPT_ADAPTER structure. yes bestie, the adapter, that one πŸ’–
  • sleepFlag β€” tells us whether sleep or schedule has to be called. very much a "which one do i call" situation.

🌸 DESCRIPTION 🌸

so it issues a SCSI Task Management call based on the input arg values. that's the whole mission. and if TaskMgmt fails? it returns the associated SCSI request. like, it brings the request back to you. iconic honestly.

Remark: _HardResetHandler can be invoked from an interrupt thread (timer) or a non-interrupt thread. and in the former case? you must not call schedule. not optional, not a vibe suggestion. 🫢

πŸ”₯ NOTE πŸ”₯

a return of -1 is a FATAL error case, because it means a FW reload/initialization failed. like, that's the bad one. 😭

it returns 0 for SUCCESS or -1 if FAILED. that's it, that's the whole personality.


πŸ‘‘ SEE ALSO πŸ‘‘

kernel file ./drivers/message/fusion/mptbase.c plus, like, the entire extended 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_do_ioc_recovery(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), 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 roster. no gatekeeping here.


and that's the page! 🧚 from ./drivers/message/fusion, dated October 2026 β€” mwah, take care of her, she's a hard reset handler πŸ’…βœ¨

πŸ“¦ where this page comes from