aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-05-02 14:18:53 +0200
committerTejun Heo <tj@kernel.org>2011-05-02 14:18:53 +0200
commit744baba0c4072b04664952a89292e4708eaf949a (patch)
tree827b504d2b842259624bdae5be7064b4156c9967
parentx86, NUMA: Move NUMA init logic from numa_64.c to numa.c (diff)
downloadlinux-dev-744baba0c4072b04664952a89292e4708eaf949a.tar.xz
linux-dev-744baba0c4072b04664952a89292e4708eaf949a.zip
x86, NUMA: Enable build of generic NUMA init code on 32bit
Generic NUMA init code was moved to numa.c from numa_64.c but is still guaraded by CONFIG_X86_64. This patch removes the compile guard and enables compiling on 32bit. * numa_add_memblk() and numa_set_distance() clash with the shim implementation in numa_32.c and are left out. * memory_add_physaddr_to_nid() clashes with 32bit implementation and is left out. * MAX_DMA_PFN definition in dma.h moved out of !CONFIG_X86_32. * node_data definition in numa_32.c removed in favor of the one in numa.c. There are places where ulong is assumed to be 64bit. The next patch will fix them up. Note that although the code is compiled it isn't used yet and this patch doesn't cause any functional change. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Yinghai Lu <yinghai@kernel.org> Cc: David Rientjes <rientjes@google.com> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: "H. Peter Anvin" <hpa@zytor.com>
-rw-r--r--arch/x86/include/asm/dma.h6
-rw-r--r--arch/x86/mm/numa.c10
-rw-r--r--arch/x86/mm/numa_32.c3
3 files changed, 7 insertions, 12 deletions
diff --git a/arch/x86/include/asm/dma.h b/arch/x86/include/asm/dma.h
index 057099e5faba..d1a314b610f6 100644
--- a/arch/x86/include/asm/dma.h
+++ b/arch/x86/include/asm/dma.h
@@ -69,6 +69,9 @@
#define MAX_DMA_CHANNELS 8
+/* 16MB ISA DMA zone */
+#define MAX_DMA_PFN ((16 * 1024 * 1024) >> PAGE_SHIFT)
+
#ifdef CONFIG_X86_32
/* The maximum address that we can perform a DMA transfer to on this platform */
@@ -76,9 +79,6 @@
#else
-/* 16MB ISA DMA zone */
-#define MAX_DMA_PFN ((16 * 1024 * 1024) >> PAGE_SHIFT)
-
/* 4GB broken PCI/AGP hardware bus master zone */
#define MAX_DMA32_PFN ((4UL * 1024 * 1024 * 1024) >> PAGE_SHIFT)
diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
index ed1daba54906..c400f3b2b93e 100644
--- a/arch/x86/mm/numa.c
+++ b/arch/x86/mm/numa.c
@@ -23,7 +23,6 @@
int __initdata numa_off;
nodemask_t numa_nodes_parsed __initdata;
-#ifdef CONFIG_X86_64
struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
EXPORT_SYMBOL(node_data);
@@ -35,7 +34,6 @@ __initdata
static int numa_distance_cnt;
static u8 *numa_distance;
-#endif
static __init int numa_setup(char *opt)
{
@@ -134,7 +132,6 @@ void __init setup_node_to_cpumask_map(void)
pr_debug("Node to cpumask map for %d nodes\n", nr_node_ids);
}
-#ifdef CONFIG_X86_64
static int __init numa_add_memblk_to(int nid, u64 start, u64 end,
struct numa_meminfo *mi)
{
@@ -176,6 +173,7 @@ void __init numa_remove_memblk_from(int idx, struct numa_meminfo *mi)
(mi->nr_blks - idx) * sizeof(mi->blk[0]));
}
+#ifdef CONFIG_X86_64
/**
* numa_add_memblk - Add one numa_memblk to numa_meminfo
* @nid: NUMA node ID of the new memblk
@@ -191,6 +189,7 @@ int __init numa_add_memblk(int nid, u64 start, u64 end)
{
return numa_add_memblk_to(nid, start, end, &numa_meminfo);
}
+#endif
/* Initialize bootmem allocator for a node */
static void __init
@@ -402,6 +401,7 @@ static int __init numa_alloc_distance(void)
return 0;
}
+#ifdef CONFIG_X86_64
/**
* numa_set_distance - Set NUMA distance from one NUMA to another
* @from: the 'from' node to set distance
@@ -440,6 +440,7 @@ void __init numa_set_distance(int from, int to, int distance)
numa_distance[from * numa_distance_cnt + to] = distance;
}
+#endif
int __node_distance(int from, int to)
{
@@ -518,7 +519,6 @@ static int __init numa_register_memblks(struct numa_meminfo *mi)
return 0;
}
-#endif
/*
* There are unfortunately some poorly designed mainboards around that
@@ -542,7 +542,6 @@ void __init numa_init_array(void)
}
}
-#ifdef CONFIG_X86_64
static int __init numa_init(int (*init_func)(void))
{
int i;
@@ -627,7 +626,6 @@ void __init x86_numa_init(void)
numa_init(dummy_numa_init);
}
-#endif
static __init int find_near_online_node(int node)
{
diff --git a/arch/x86/mm/numa_32.c b/arch/x86/mm/numa_32.c
index 14135e52cef5..975a76f622ba 100644
--- a/arch/x86/mm/numa_32.c
+++ b/arch/x86/mm/numa_32.c
@@ -41,9 +41,6 @@
#include <asm/bios_ebda.h>
#include <asm/proto.h>
-struct pglist_data *node_data[MAX_NUMNODES] __read_mostly;
-EXPORT_SYMBOL(node_data);
-
/*
* numa interface - we expect the numa architecture specific code to have
* populated the following initialisation.