mpt_interrupt(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… mpt_interrupt β€” the kernel API manual, bestie edition ✨

okay so welcome to mpt_interrupt(9), a page from the Kernel API Manual, and honestly? she's a baddie. let's get into it 🫢


✨ NAME ✨

mpt_interrupt β€” the interrupt handler that's specifically for an MPT adapter (aka the IOC). like, her interrupts, nobody else's πŸ’…


🌸 SYNOPSIS 🌸

irqreturn_t mpt_interrupt (int irq , void *bus_id );

πŸŽ€ ARGUMENTS πŸŽ€

  • irq β€” the irq number. and listen… it is not used. like at all. she's just there, being decorative. iconic of her honestly πŸ’€
  • bus_id β€” the bus identifier cookie, which is == a pointer to the MPT_ADAPTER structure. yes bestie, the cookie IS the pointer. that's the whole vibe πŸ“

πŸ¦‹ DESCRIPTION πŸ¦‹

so this routine gets registered through the request_irq kernel API call, and it handles all the interrupts generated from one specific MPT adapter (which also gets called a IO Controller, or IOC, iykyk). and it must clear the interrupt from the adapter β€” it does that by reading the reply FIFO. and here's the cute part: multiple replies may be processed per single call to this routine. one call, many replies, she's efficient like that ⭐

this routine handles the register-level access of the adapter, but then it dispatches (calls) a protocol-specific callback routine to handle the protocol-specific details of the MPT request completion. so she does the register stuff herself and then hands off the protocol drama to her callback bestie πŸ’–


🌈 SEE ALSO 🌈

okay this list is LONG, hydrate before you read it, but every single one of these is invited to the group chat:

Kernel file ./drivers/message/fusion/mptbase.c mpt_get_cb_idx(9), mpt_is_discovery_complete(9), mpt_remove_dead_ioc_func(9), mpt_fault_reset_work(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), 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)


bestie this many functions in one SEE ALSO is giving "the entire friend group showed up to the party" 😭 no cap.

and that's the page!! 🌟 she lives over at ./drivers/message/fusion, the version/date stamp on her is October 2026, and she is literally the mpt_interrupt(9) main character of this whole page. periodt πŸ’œπŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from