From 6b73ef8605ce9d0e9b596ef36af694c178010360 Mon Sep 17 00:00:00 2001 From: Yinghai Lu Date: Mon, 27 Apr 2009 18:01:50 -0700 Subject: [PATCH] --- yaml --- r: 145579 b: refs/heads/master c: 024154cfdd802654cb236a18c78b6e37351e2c49 h: refs/heads/master i: 145577: 0e7078f38d2b0142a61a69d6a755a512345b9cf0 145575: aa1bce06d0c49d05045ec220116ced4fe61c0b0f v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/apic/io_apic.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 08c3c4401378..b0d10979c18b 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: a2f809b08ae4dddc1015c7dcd8659e5729e45b3e +refs/heads/master: 024154cfdd802654cb236a18c78b6e37351e2c49 diff --git a/trunk/arch/x86/kernel/apic/io_apic.c b/trunk/arch/x86/kernel/apic/io_apic.c index d9346622601b..82376e021b5d 100644 --- a/trunk/arch/x86/kernel/apic/io_apic.c +++ b/trunk/arch/x86/kernel/apic/io_apic.c @@ -3963,7 +3963,7 @@ int io_apic_set_pci_routing(struct device *dev, int ioapic, int pin, int irq, { struct irq_desc *desc; struct irq_cfg *cfg; - int node = cpu_to_node(boot_cpu_id); + int node; if (!IO_APIC_IRQ(irq)) { apic_printk(APIC_QUIET,KERN_ERR "IOAPIC[%d]: Invalid reference to IRQ 0\n", @@ -3971,6 +3971,11 @@ int io_apic_set_pci_routing(struct device *dev, int ioapic, int pin, int irq, return -EINVAL; } + if (dev) + node = dev_to_node(dev); + else + node = cpu_to_node(boot_cpu_id); + desc = irq_to_desc_alloc_node(irq, node); if (!desc) { printk(KERN_INFO "can not get irq_desc %d\n", irq);