From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756579AbZDQEZs (ORCPT ); Fri, 17 Apr 2009 00:25:48 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1754831AbZDQEZk (ORCPT ); Fri, 17 Apr 2009 00:25:40 -0400 Received: from hera.kernel.org ([140.211.167.34]:53367 "EHLO hera.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754568AbZDQEZk (ORCPT ); Fri, 17 Apr 2009 00:25:40 -0400 Message-ID: <49E8047E.8090805@kernel.org> Date: Thu, 16 Apr 2009 21:24:30 -0700 From: Yinghai Lu User-Agent: Thunderbird 2.0.0.19 (X11/20081227) MIME-Version: 1.0 To: Ingo Molnar , Thomas Gleixner , "H. Peter Anvin" , Andrew Morton , Suresh Siddha , "Eric W. Biederman" , Rusty Russell CC: "linux-kernel@vger.kernel.org" Subject: [PATCH 7/9] irq: make io_apic_set_pci_routing to use device References: <49E68C41.4020801@kernel.org> <20090416090315.GF9813@elte.hu> <49E802CE.5030406@kernel.org> In-Reply-To: <49E802CE.5030406@kernel.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Impact: dev_to_node(dev) so use right node in irq_desc_alloc_node() Signed-off-by: Yinghai Lu --- arch/x86/kernel/apic/io_apic.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) Index: linux-2.6/arch/x86/kernel/apic/io_apic.c =================================================================== --- linux-2.6.orig/arch/x86/kernel/apic/io_apic.c +++ linux-2.6/arch/x86/kernel/apic/io_apic.c @@ -3856,7 +3856,7 @@ int io_apic_set_pci_routing(struct devic { 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", @@ -3864,6 +3864,11 @@ int io_apic_set_pci_routing(struct devic 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);