diff options
Diffstat (limited to 'arch/x86/kernel/apic/vector.c')
-rw-r--r-- | arch/x86/kernel/apic/vector.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c index 28eba2d38b15..9b62f690b0ff 100644 --- a/arch/x86/kernel/apic/vector.c +++ b/arch/x86/kernel/apic/vector.c | |||
@@ -296,7 +296,7 @@ static int x86_vector_alloc_irqs(struct irq_domain *domain, unsigned int virq, | |||
296 | struct irq_alloc_info *info = arg; | 296 | struct irq_alloc_info *info = arg; |
297 | struct apic_chip_data *data; | 297 | struct apic_chip_data *data; |
298 | struct irq_data *irq_data; | 298 | struct irq_data *irq_data; |
299 | int i, err; | 299 | int i, err, node; |
300 | 300 | ||
301 | if (disable_apic) | 301 | if (disable_apic) |
302 | return -ENXIO; | 302 | return -ENXIO; |
@@ -308,12 +308,13 @@ static int x86_vector_alloc_irqs(struct irq_domain *domain, unsigned int virq, | |||
308 | for (i = 0; i < nr_irqs; i++) { | 308 | for (i = 0; i < nr_irqs; i++) { |
309 | irq_data = irq_domain_get_irq_data(domain, virq + i); | 309 | irq_data = irq_domain_get_irq_data(domain, virq + i); |
310 | BUG_ON(!irq_data); | 310 | BUG_ON(!irq_data); |
311 | node = irq_data_get_node(irq_data); | ||
311 | #ifdef CONFIG_X86_IO_APIC | 312 | #ifdef CONFIG_X86_IO_APIC |
312 | if (virq + i < nr_legacy_irqs() && legacy_irq_data[virq + i]) | 313 | if (virq + i < nr_legacy_irqs() && legacy_irq_data[virq + i]) |
313 | data = legacy_irq_data[virq + i]; | 314 | data = legacy_irq_data[virq + i]; |
314 | else | 315 | else |
315 | #endif | 316 | #endif |
316 | data = alloc_apic_chip_data(irq_data->node); | 317 | data = alloc_apic_chip_data(node); |
317 | if (!data) { | 318 | if (!data) { |
318 | err = -ENOMEM; | 319 | err = -ENOMEM; |
319 | goto error; | 320 | goto error; |
@@ -322,8 +323,7 @@ static int x86_vector_alloc_irqs(struct irq_domain *domain, unsigned int virq, | |||
322 | irq_data->chip = &lapic_controller; | 323 | irq_data->chip = &lapic_controller; |
323 | irq_data->chip_data = data; | 324 | irq_data->chip_data = data; |
324 | irq_data->hwirq = virq + i; | 325 | irq_data->hwirq = virq + i; |
325 | err = assign_irq_vector_policy(virq, irq_data->node, data, | 326 | err = assign_irq_vector_policy(virq, node, data, info); |
326 | info); | ||
327 | if (err) | 327 | if (err) |
328 | goto error; | 328 | goto error; |
329 | } | 329 | } |