From: Linus Torvalds Date: Wed, 16 Mar 2011 02:49:10 +0000 (-0700) Subject: Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git... X-Git-Tag: firefly_0821_release~7613^2~2227 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=181f977d134a9f8e3f8839f42af655b045fc059e;p=firefly-linux-kernel-4.4.55.git Merge branch 'x86-mm-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (93 commits) x86, tlb, UV: Do small micro-optimization for native_flush_tlb_others() x86-64, NUMA: Don't call numa_set_distanc() for all possible node combinations during emulation x86-64, NUMA: Don't assume phys node 0 is always online in numa_emulation() x86-64, NUMA: Clean up initmem_init() x86-64, NUMA: Fix numa_emulation code with node0 without RAM x86-64, NUMA: Revert NUMA affine page table allocation x86: Work around old gas bug x86-64, NUMA: Better explain numa_distance handling x86-64, NUMA: Fix distance table handling mm: Move early_node_map[] reverse scan helpers under HAVE_MEMBLOCK x86-64, NUMA: Fix size of numa_distance array x86: Rename e820_table_* to pgt_buf_* bootmem: Move __alloc_memory_core_early() to nobootmem.c bootmem: Move contig_page_data definition to bootmem.c/nobootmem.c bootmem: Separate out CONFIG_NO_BOOTMEM code into nobootmem.c x86-64, NUMA: Seperate out numa_alloc_distance() from numa_set_distance() x86-64, NUMA: Add proper function comments to global functions x86-64, NUMA: Move NUMA emulation into numa_emulation.c x86-64, NUMA: Prepare numa_emulation() for moving NUMA emulation into a separate file x86-64, NUMA: Do not scan two times for setup_node_bootmem() ... Fix up conflicts in arch/x86/kernel/smpboot.c --- 181f977d134a9f8e3f8839f42af655b045fc059e diff --cc arch/x86/include/asm/smp.h index 99fa8b47381e,b296ca6f40bb..73b11bc0ae6f --- a/arch/x86/include/asm/smp.h +++ b/arch/x86/include/asm/smp.h @@@ -48,13 -36,11 +48,16 @@@ static inline struct cpumask *cpu_core_ return per_cpu(cpu_core_map, cpu); } +static inline struct cpumask *cpu_llc_shared_mask(int cpu) +{ + return per_cpu(cpu_llc_shared_map, cpu); +} + DECLARE_EARLY_PER_CPU(u16, x86_cpu_to_apicid); DECLARE_EARLY_PER_CPU(u16, x86_bios_cpu_apicid); + #if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86_32) + DECLARE_EARLY_PER_CPU(int, x86_cpu_to_logical_apicid); + #endif /* Static state in head.S used to set up a CPU */ extern unsigned long stack_start; /* Initial stack pointer address */ diff --cc arch/x86/kernel/smpboot.c index 16ce42613991,a9d805f3920c..e9efdfd51c8d --- a/arch/x86/kernel/smpboot.c +++ b/arch/x86/kernel/smpboot.c @@@ -1085,11 -1035,7 +1024,9 @@@ void __init native_smp_prepare_cpus(uns * Setup boot CPU information */ smp_store_cpu_info(0); /* Final full version of the data */ + cpumask_copy(cpu_callin_mask, cpumask_of(0)); + mb(); - #ifdef CONFIG_X86_32 - boot_cpu_logical_apicid = logical_smp_processor_id(); - #endif + current_thread_info()->cpu = 0; /* needed? */ for_each_possible_cpu(i) { zalloc_cpumask_var(&per_cpu(cpu_sibling_map, i), GFP_KERNEL);