STRUCT ADAPTER_REPLY_QUEUE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct adapter_reply_queue(9) πŸ’…

okay so bestie, welcome to the Kernel API Manual entry for struct adapter_reply_queue β€” it's a big day for the mpt3sas girlies πŸŽ€ this is literally the reply queue struct, and we're gonna go through it line by line, no skips, no cap.


✨ NAME ✨

struct adapter_reply_queue β€” the reply queue struct. that's it, that's the tweet 🐦


🌸 SYNOPSIS 🌸

struct adapter_reply_queue {
    struct MPT3SAS_ADAPTER  *ioc;
    u8 msix_index;
    u32 reply_post_host_index;
    Mpi2ReplyDescriptorsUnion_t *reply_post_free;
    char name[MPT_NAME_LENGTH];
    atomic_t busy;
    u32 os_irq;
    struct irq_poll         irqpoll;
    bool irq_poll_scheduled;
    bool irq_line_enable;
    bool is_iouring_poll_q;
    struct list_head        list;
 };

like, that's the whole struct, exactly as written, don't come for me about the indentation on that last }; β€” we keep it verbatim in this house πŸ’―


πŸ¦‹ Members πŸ¦‹

so these are the members, one by one, in order, because we do not skip:

  • ioc β€” the per adapter object 🫢 like, the whole adapter, just chilling in there
  • msix_index β€” the msix index into the vector table
  • reply_post_host_index β€” the head index in the pool where FW completes IO (FW = firmware, bestie, it's doing the actual IO completion thing)
  • reply_post_free β€” the reply post base virt address
  • name β€” the name registered to request_irq 🌈
  • busy β€” an atomic_t telling you the isr is actively processing replies on another cpu 😭 so yeah, it's busy busy
  • os_irq β€” the irq number
  • irqpoll β€” the irq_poll object
  • irq_poll_scheduled β€” tells whether irq poll is scheduled or not. a yes/no vibe check basically ✨
  • is_iouring_poll_q β€” tells whether reply queues is assigned to io uring poll queues or not πŸ‘‘ (writing it exactly how the page writes it, ngl)
  • list β€” this list. iconic, no notes. it's the list. it lists. πŸ’€
ngl the struct up top also declares irq_line_enable but the Members section doesn't say a single word about it πŸ™ˆ so we're not gonna invent lore. it's there, it's a bool, and the manpage is silent. respect the silence.

🧚 SEE ALSO 🧚

the friend group, the whole cast, the extended universe β€” all in Kernel file ./drivers/scsi/mpt3sas/mpt3sas_base.h:

  • struct MPT3SAS_TARGET(9)
  • struct MPT3SAS_DEVICE(9)
  • struct _internal_cmd(9)
  • struct _sas_device(9)
  • pcie_device_get(9)
  • pcie_device_free(9)
  • pcie_device_put(9)
  • struct _boot_device(9)
  • struct _sas_port(9)
  • struct _sas_phy(9)
  • struct _sas_node(9)
  • struct _enclosure_node(9)
  • enum reset_type(9)
  • struct pcie_sg_list(9)
  • struct chain_tracker(9)
  • struct scsiio_tracker(9)
  • struct request_tracker(9)
  • struct _tr_list(9)
  • struct _sc_list(9)
  • struct _event_ack_list(9)
  • struct io_uring_poll_queue(9)
  • struct virtual_phy(9)
  • struct hba_port(9)
  • struct htb_rel_query(9)
  • struct MPT3SAS_ADAPTER(9)

go read all of them, it's giving study group πŸ“šπŸ’–


okay and finally, the cute sign-off πŸŽ€ this page lives under ./drivers/scsi/mpt3sas and it's dated October 2026, so yeah β€” drive safe, request your irq responsibly, and remember: the reply queue is always the main character. periodt. πŸ’…βœ¨

πŸ“¦ where this page comes from