diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2016-09-14 17:18:47 +0300 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2016-09-14 23:11:08 +0300 |
commit | 28f4b04143c56135b1ca742fc64b664ed04de6a4 (patch) | |
tree | 540f709075a896497ea19a6ba40fa8c516653db0 /include | |
parent | 9395452b4aab7bc2475ef8935b4a4fb99d778d70 (diff) | |
download | linux-28f4b04143c56135b1ca742fc64b664ed04de6a4.tar.xz |
genirq/msi: Add cpumask allocation to alloc_msi_entry
For irq spreading want to store affinity masks in the msi_entry. Add the
infrastructure for it.
We allocate an array of cpumasks with an array size of the number of used
vectors in the entry, so we can hand in the information per linux interrupt
later.
As we hand in the number of used vectors, we assign them right
away. Convert all the call sites.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: axboe@fb.com
Cc: keith.busch@intel.com
Cc: agordeev@redhat.com
Cc: linux-block@vger.kernel.org
Cc: Christoph Hellwig <hch@lst.de>
Link: http://lkml.kernel.org/r/1473862739-15032-2-git-send-email-hch@lst.de
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/msi.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/include/linux/msi.h b/include/linux/msi.h index e8c81fbd5f9c..0db320b7bb15 100644 --- a/include/linux/msi.h +++ b/include/linux/msi.h @@ -68,7 +68,7 @@ struct msi_desc { unsigned int nvec_used; struct device *dev; struct msi_msg msg; - const struct cpumask *affinity; + struct cpumask *affinity; union { /* PCI MSI/X specific data */ @@ -123,7 +123,8 @@ static inline void *msi_desc_to_pci_sysdata(struct msi_desc *desc) } #endif /* CONFIG_PCI_MSI */ -struct msi_desc *alloc_msi_entry(struct device *dev); +struct msi_desc *alloc_msi_entry(struct device *dev, int nvec, + const struct cpumask *affinity); void free_msi_entry(struct msi_desc *entry); void __pci_read_msi_msg(struct msi_desc *entry, struct msi_msg *msg); void __pci_write_msi_msg(struct msi_desc *entry, struct msi_msg *msg); |