x86: fix NUMA code for 32bit
PATCH 1/1 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 <[email protected]>
xen/arch/x86/numa.c +9 -9
@@ -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 l#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 lfor (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)