genirq/affinity: Add support for allocating interrupt sets
A driver may have a need to allocate multiple sets of MSI/MSI-X interrupts, and have them appropriately affinitized. Add support for defining a number of sets in the irq_affinity structure, of varying sizes, and get each set affinitized correctly across the machine. [ tglx: Minor changelog tweaks ] Signed-off-by: Jens Axboe <axboe@kernel.dk> Signed-off-by: Ming Lei <ming.lei@redhat.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Hannes Reinecke <hare@suse.com> Reviewed-by: Ming Lei <ming.lei@redhat.com> Reviewed-by: Keith Busch <keith.busch@intel.com> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Cc: linux-block@vger.kernel.org Link: https://lkml.kernel.org/r/20181102145951.31979-5-ming.lei@redhat.com
This commit is contained in:

committed by
Thomas Gleixner

parent
060746d9e3
commit
6da4b3ab9a
@@ -1036,6 +1036,13 @@ static int __pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec,
|
||||
if (maxvec < minvec)
|
||||
return -ERANGE;
|
||||
|
||||
/*
|
||||
* If the caller is passing in sets, we can't support a range of
|
||||
* vectors. The caller needs to handle that.
|
||||
*/
|
||||
if (affd && affd->nr_sets && minvec != maxvec)
|
||||
return -EINVAL;
|
||||
|
||||
if (WARN_ON_ONCE(dev->msi_enabled))
|
||||
return -EINVAL;
|
||||
|
||||
@@ -1087,6 +1094,13 @@ static int __pci_enable_msix_range(struct pci_dev *dev,
|
||||
if (maxvec < minvec)
|
||||
return -ERANGE;
|
||||
|
||||
/*
|
||||
* If the caller is passing in sets, we can't support a range of
|
||||
* supported vectors. The caller needs to handle that.
|
||||
*/
|
||||
if (affd && affd->nr_sets && minvec != maxvec)
|
||||
return -EINVAL;
|
||||
|
||||
if (WARN_ON_ONCE(dev->msix_enabled))
|
||||
return -EINVAL;
|
||||
|
||||
|
Reference in New Issue
Block a user