Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1161084AbWLUA06 (ORCPT ); Wed, 20 Dec 2006 19:26:58 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1161075AbWLUA06 (ORCPT ); Wed, 20 Dec 2006 19:26:58 -0500 Received: from rgminet01.oracle.com ([148.87.113.118]:38576 "EHLO rgminet01.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1161083AbWLUA05 (ORCPT ); Wed, 20 Dec 2006 19:26:57 -0500 Date: Wed, 20 Dec 2006 16:27:43 -0800 From: Randy Dunlap To: Yasunori Goto Cc: Andrew Morton , David Rientjes , Linux Kernel ML , Andi Kleen Subject: Re: [Patch](memory hotplug) fix compile error for i386 with NUMA config (take 3). Message-Id: <20061220162743.d6feb823.randy.dunlap@oracle.com> In-Reply-To: <20061220225927.F016.Y-GOTO@jp.fujitsu.com> References: <20061220225927.F016.Y-GOTO@jp.fujitsu.com> Organization: Oracle Linux Eng. X-Mailer: Sylpheed version 2.2.9 (GTK+ 2.8.10; x86_64-unknown-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: AAAAAQAAAAI= X-Brightmail-Tracker: AAAAAQAAAAI= X-Whitelist: TRUE X-Whitelist: TRUE Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3059 Lines: 105 On Wed, 20 Dec 2006 23:09:58 +0900 Yasunori Goto wrote: > Hello. > > This is take 3 patch to fix compile error when config > memory hotplug with numa on i386. > > The cause of compile error was missing of arch_add_memory(), remove_memory(), > and memory_add_physaddr_to_nid(). > > I fixed some bad points, and tested no compile error of it. > > This is for 2.6.20-rc1. > > Please apply. > > Signed-off-by: Yasunori Goto Acked-by: Randy Dunlap after also using the register_memory() patch. > --- > arch/i386/mm/discontig.c | 28 ++++++++++++++++++++++++++++ > arch/i386/mm/init.c | 10 ++-------- > 2 files changed, 30 insertions(+), 8 deletions(-) > > Index: linux-2.6.20-rc1/arch/i386/mm/init.c > =================================================================== > --- linux-2.6.20-rc1.orig/arch/i386/mm/init.c 2006-12-20 22:12:07.000000000 +0900 > +++ linux-2.6.20-rc1/arch/i386/mm/init.c 2006-12-20 22:12:09.000000000 +0900 > @@ -673,16 +673,10 @@ > #endif > } > > -/* > - * this is for the non-NUMA, single node SMP system case. > - * Specifically, in the case of x86, we will always add > - * memory to the highmem for now. > - */ > #ifdef CONFIG_MEMORY_HOTPLUG > -#ifndef CONFIG_NEED_MULTIPLE_NODES > int arch_add_memory(int nid, u64 start, u64 size) > { > - struct pglist_data *pgdata = &contig_page_data; > + struct pglist_data *pgdata = NODE_DATA(nid); > struct zone *zone = pgdata->node_zones + ZONE_HIGHMEM; > unsigned long start_pfn = start >> PAGE_SHIFT; > unsigned long nr_pages = size >> PAGE_SHIFT; > @@ -694,7 +688,7 @@ > { > return -EINVAL; > } > -#endif > +EXPORT_SYMBOL_GPL(remove_memory); > #endif > > struct kmem_cache *pgd_cache; > Index: linux-2.6.20-rc1/arch/i386/mm/discontig.c > =================================================================== > --- linux-2.6.20-rc1.orig/arch/i386/mm/discontig.c 2006-12-20 22:12:07.000000000 +0900 > +++ linux-2.6.20-rc1/arch/i386/mm/discontig.c 2006-12-20 22:37:54.000000000 +0900 > @@ -405,3 +405,31 @@ > totalram_pages += totalhigh_pages; > #endif > } > + > +#ifdef CONFIG_MEMORY_HOTPLUG > +int paddr_to_nid(u64 addr) > +{ > + int nid; > + unsigned long pfn = PFN_DOWN(addr); > + > + for_each_node(nid) > + if (node_start_pfn[nid] <= pfn && > + pfn < node_end_pfn[nid]) > + return nid; > + > + return -1; > +} > + > +/* > + * This function is used to ask node id BEFORE memmap and mem_section's > + * initialization (pfn_to_nid() can't be used yet). > + * If _PXM is not defined on ACPI's DSDT, node id must be found by this. > + */ > +int memory_add_physaddr_to_nid(u64 addr) > +{ > + int nid = paddr_to_nid(addr); > + return (nid >= 0) ? nid : 0; > +} > + > +EXPORT_SYMBOL_GPL(memory_add_physaddr_to_nid); > +#endif > > -- --- ~Randy - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/