summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2022-11-25 02:26:20 +0300
committerThomas Gleixner <tglx@linutronix.de>2022-12-06 00:22:34 +0300
commitb834e3c08fc6c4460c2bce6575cba4705f6301e3 (patch)
treeb4be5b1d5a4c19441273beb64972303e76c5af5b
parent3d393b21740bffbeeae7d4fa534a6b16c3e3e832 (diff)
downloadlinux-b834e3c08fc6c4460c2bce6575cba4705f6301e3.tar.xz
genirq/msi: Provide MSI_FLAG_MSIX_ALLOC_DYN
Provide a new MSI feature flag in preparation for dynamic MSIX allocation after the initial MSI-X enable has been done. This needs to be an explicit MSI interrupt domain feature because quite some implementations (both interrupt domains and legacy allocation mode) have clear expectations that the allocation code is only invoked when MSI-X is about to be enabled. They either talk to hypervisors or do some other work and are not prepared to be invoked on an already MSI-X enabled device. This is also explicit MSI-X only because rewriting the size of the MSI entries is only possible when disabling MSI which in turn might cause lost interrupts on the device. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> Reviewed-by: Kevin Tian <kevin.tian@intel.com> Acked-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/r/20221124232326.558843119@linutronix.de
-rw-r--r--include/linux/msi.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/msi.h b/include/linux/msi.h
index 00c501979ff1..3cb15866ffbf 100644
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -557,7 +557,8 @@ enum {
MSI_FLAG_LEVEL_CAPABLE = (1 << 18),
/* MSI-X entries must be contiguous */
MSI_FLAG_MSIX_CONTIGUOUS = (1 << 19),
-
+ /* PCI/MSI-X vectors can be dynamically allocated/freed post MSI-X enable */
+ MSI_FLAG_PCI_MSIX_ALLOC_DYN = (1 << 20),
};
/**