aboutsummaryrefslogtreecommitdiffstats
path: root/xen/arch/x86/numa.c
diff options
context:
space:
mode:
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-09-14 16:10:08 +0100
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>2007-09-14 16:10:08 +0100
commit221b43f35776f6397a1e52802d6391488401facb (patch)
tree9b68ef0e6ef939ef9025938216c7156ff99545b6 /xen/arch/x86/numa.c
parentd068e6116708d2b321c138d75fd586a2ce53fd74 (diff)
downloadxen-221b43f35776f6397a1e52802d6391488401facb.tar.gz
xen-221b43f35776f6397a1e52802d6391488401facb.tar.bz2
xen-221b43f35776f6397a1e52802d6391488401facb.zip
x86: fix NUMA code for 32bit
I don't know how significant this is (most of the NUMA node data seems unused at this point), but anyway: enable proper operation of NUMA emulation and the fake NUMA node in case there's no SRAT table on x86-32. This will at least make the "Faking node ..." message not print confusing information anymore. Signed-off-by: Jan Beulich <jbeulich@novell.com>
Diffstat (limited to 'xen/arch/x86/numa.c')
-rw-r--r--xen/arch/x86/numa.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/xen/arch/x86/numa.c b/xen/arch/x86/numa.c
index 386234fd47..e80a3995a1 100644
--- a/xen/arch/x86/numa.c
+++ b/xen/arch/x86/numa.c
@@ -139,15 +139,15 @@ void __init numa_init_array(void)
static int numa_fake __initdata = 0;
/* Numa emulation */
-static int numa_emulation(unsigned long start_pfn, unsigned long end_pfn)
+static int numa_emulation(u64 start_pfn, u64 end_pfn)
{
int i;
struct node nodes[MAX_NUMNODES];
- unsigned long sz = ((end_pfn - start_pfn)<<PAGE_SHIFT) / numa_fake;
+ u64 sz = ((end_pfn - start_pfn)<<PAGE_SHIFT) / numa_fake;
/* Kludge needed for the hash function */
if (hweight64(sz) > 1) {
- unsigned long x = 1;
+ u64 x = 1;
while ((x << 1) < sz)
x <<= 1;
if (x < sz/2)
@@ -190,17 +190,17 @@ void __init numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn)
#endif
#ifdef CONFIG_ACPI_NUMA
- if (!numa_off && !acpi_scan_nodes(start_pfn << PAGE_SHIFT,
- end_pfn << PAGE_SHIFT))
+ if (!numa_off && !acpi_scan_nodes((u64)start_pfn << PAGE_SHIFT,
+ (u64)end_pfn << PAGE_SHIFT))
return;
#endif
printk(KERN_INFO "%s\n",
numa_off ? "NUMA turned off" : "No NUMA configuration found");
- printk(KERN_INFO "Faking a node at %016lx-%016lx\n",
- start_pfn << PAGE_SHIFT,
- end_pfn << PAGE_SHIFT);
+ printk(KERN_INFO "Faking a node at %016"PRIx64"-%016"PRIx64"\n",
+ (u64)start_pfn << PAGE_SHIFT,
+ (u64)end_pfn << PAGE_SHIFT);
/* setup dummy node covering all memory */
memnode_shift = 63;
memnodemap[0] = 0;
@@ -209,7 +209,7 @@ void __init numa_initmem_init(unsigned long start_pfn, unsigned long end_pfn)
for (i = 0; i < NR_CPUS; i++)
numa_set_node(i, 0);
node_to_cpumask[0] = cpumask_of_cpu(0);
- setup_node_bootmem(0, start_pfn << PAGE_SHIFT, end_pfn << PAGE_SHIFT);
+ setup_node_bootmem(0, (u64)start_pfn << PAGE_SHIFT, (u64)end_pfn << PAGE_SHIFT);
}
__cpuinit void numa_add_cpu(int cpu)