diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2016-07-04 17:39:24 +0900 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2016-07-04 12:25:13 +0200 |
commit | 06ee6d571f0e350253a8fc3492316b2be007fae2 (patch) | |
tree | bcabd269ee107044375a331d82334b95c28f915f /kernel/irq/manage.c | |
parent | 9c2555835bb3d34dfac52a0be943dcc4bedd650f (diff) | |
download | linux-06ee6d571f0e350253a8fc3492316b2be007fae2.tar.gz linux-06ee6d571f0e350253a8fc3492316b2be007fae2.tar.bz2 linux-06ee6d571f0e350253a8fc3492316b2be007fae2.zip |
genirq: Add affinity hint to irq allocation
Add an extra argument to the irq(domain) allocation functions, so we can hand
down affinity hints to the allocator. Thats necessary to implement proper
support for multiqueue devices.
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Christoph Hellwig <hch@lst.de>
Cc: linux-block@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: linux-nvme@lists.infradead.org
Cc: axboe@fb.com
Cc: agordeev@redhat.com
Link: http://lkml.kernel.org/r/1467621574-8277-4-git-send-email-hch@lst.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'kernel/irq/manage.c')
-rw-r--r-- | kernel/irq/manage.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c index 30658e9827f0..ad0aac6d1248 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c @@ -353,10 +353,11 @@ static int setup_affinity(struct irq_desc *desc, struct cpumask *mask) return 0; /* - * Preserve an userspace affinity setup, but make sure that - * one of the targets is online. + * Preserve the managed affinity setting and an userspace affinity + * setup, but make sure that one of the targets is online. */ - if (irqd_has_set(&desc->irq_data, IRQD_AFFINITY_SET)) { + if (irqd_affinity_is_managed(&desc->irq_data) || + irqd_has_set(&desc->irq_data, IRQD_AFFINITY_SET)) { if (cpumask_intersects(desc->irq_common_data.affinity, cpu_online_mask)) set = desc->irq_common_data.affinity; |