aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic/io_apic.c
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2016-07-04 04:39:24 -0400
committerThomas Gleixner <tglx@linutronix.de>2016-07-04 06:25:13 -0400
commit06ee6d571f0e350253a8fc3492316b2be007fae2 (patch)
treebcabd269ee107044375a331d82334b95c28f915f /arch/x86/kernel/apic/io_apic.c
parent9c2555835bb3d34dfac52a0be943dcc4bedd650f (diff)
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 'arch/x86/kernel/apic/io_apic.c')
-rw-r--r--arch/x86/kernel/apic/io_apic.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
index 446702ed99dc..7c4f90dd4c2a 100644
--- a/arch/x86/kernel/apic/io_apic.c
+++ b/arch/x86/kernel/apic/io_apic.c
@@ -981,7 +981,7 @@ static int alloc_irq_from_domain(struct irq_domain *domain, int ioapic, u32 gsi,
981 981
982 return __irq_domain_alloc_irqs(domain, irq, 1, 982 return __irq_domain_alloc_irqs(domain, irq, 1,
983 ioapic_alloc_attr_node(info), 983 ioapic_alloc_attr_node(info),
984 info, legacy); 984 info, legacy, NULL);
985} 985}
986 986
987/* 987/*
@@ -1014,7 +1014,8 @@ static int alloc_isa_irq_from_domain(struct irq_domain *domain,
1014 info->ioapic_pin)) 1014 info->ioapic_pin))
1015 return -ENOMEM; 1015 return -ENOMEM;
1016 } else { 1016 } else {
1017 irq = __irq_domain_alloc_irqs(domain, irq, 1, node, info, true); 1017 irq = __irq_domain_alloc_irqs(domain, irq, 1, node, info, true,
1018 NULL);
1018 if (irq >= 0) { 1019 if (irq >= 0) {
1019 irq_data = irq_domain_get_irq_data(domain, irq); 1020 irq_data = irq_domain_get_irq_data(domain, irq);
1020 data = irq_data->chip_data; 1021 data = irq_data->chip_data;