msi_insert_msi_desc(9)
π msi_insert_msi_desc(9) π
okay bestie, welcome to the Kernel API Manual (section 9, iconic behavior only) β this one is all about sliding an MSI descriptor into place. let's get into it β¨
πΈ NAME πΈ
msi_insert_msi_desc β allocate and initialize a MSI descriptor in the default irqdomain, then insert it at @init_desc->msi_index
like... it literally makes the descriptor, gives it a little glow-up, and drops it exactly where the index says. no cap π
π SYNOPSIS π
int msi_insert_msi_desc (struct device *dev , struct msi_desc *init_desc
);
that's the whole signature, bestie β copied exactly, don't come for me π«Ά
π¦ ARGUMENTS π¦
devβ pointer to the device that this descriptor is being allocated for. like, whose descriptor is this? that device. periodt.init_descβ pointer to an MSI descriptor that gets used to initialize the new descriptor. it's giving "template but make it kernel" β¨
β RETURN β
0 on success, or an appropriate failure code. so if you see 0, slay; if you see anything else, that's your failure code and you gotta deal with it π
π SEE ALSO π
Kernel file ./include/linux/msi.h and its whole friend group:
struct msi_msg(9)struct pci_msi_desc(9)union msi_domain_cookie(9)struct msi_desc_data(9)struct msi_desc(9)struct msi_dev_domain(9)msi_first_desc(9)msi_domain_for_each_desc(9)msi_for_each_desc(9)msi_msg_set_addr(9)msi_free_msi_descs_range(9)msi_free_msi_descs(9)struct msi_domain_ops(9)struct msi_domain_info(9)struct msi_domain_template(9)struct msi_parent_ops(9)
that's the whole squad, no omissions, we don't do that here π
lowkey reminder: this page is from./include/linux, dated October 2026, and the page itself ismsi_insert_msi_desc(9). take care of her, she's doing her best πβ¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms