x86/mm: Build arch/x86/mm/tlb.c even on !SMP
Currently all of the functions that live in tlb.c are inlined on !SMP builds. One can debate whether this is a good idea (in many respects the code in tlb.c is better than the inlined UP code). Regardless, I want to add code that needs to be built on UP and SMP kernels and relates to tlb flushing, so arrange for tlb.c to be compiled unconditionally. Signed-off-by: Andy Lutomirski <luto@kernel.org> Reviewed-by: Borislav Petkov <bp@suse.de> Cc: Borislav Petkov <bp@alien8.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Link: http://lkml.kernel.org/r/f0d778f0d828fc46e5d1946bca80f0aaf9abf032.1461688545.git.luto@kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
f98db6013c
commit
e1074888c3
@ -2,7 +2,7 @@
|
|||||||
KCOV_INSTRUMENT_tlb.o := n
|
KCOV_INSTRUMENT_tlb.o := n
|
||||||
|
|
||||||
obj-y := init.o init_$(BITS).o fault.o ioremap.o extable.o pageattr.o mmap.o \
|
obj-y := init.o init_$(BITS).o fault.o ioremap.o extable.o pageattr.o mmap.o \
|
||||||
pat.o pgtable.o physaddr.o gup.o setup_nx.o
|
pat.o pgtable.o physaddr.o gup.o setup_nx.o tlb.o
|
||||||
|
|
||||||
# Make sure __phys_addr has no stackprotector
|
# Make sure __phys_addr has no stackprotector
|
||||||
nostackp := $(call cc-option, -fno-stack-protector)
|
nostackp := $(call cc-option, -fno-stack-protector)
|
||||||
@ -12,7 +12,6 @@ CFLAGS_setup_nx.o := $(nostackp)
|
|||||||
CFLAGS_fault.o := -I$(src)/../include/asm/trace
|
CFLAGS_fault.o := -I$(src)/../include/asm/trace
|
||||||
|
|
||||||
obj-$(CONFIG_X86_PAT) += pat_rbtree.o
|
obj-$(CONFIG_X86_PAT) += pat_rbtree.o
|
||||||
obj-$(CONFIG_SMP) += tlb.o
|
|
||||||
|
|
||||||
obj-$(CONFIG_X86_32) += pgtable_32.o iomap_32.o
|
obj-$(CONFIG_X86_32) += pgtable_32.o iomap_32.o
|
||||||
|
|
||||||
|
@ -28,6 +28,8 @@
|
|||||||
* Implement flush IPI by CALL_FUNCTION_VECTOR, Alex Shi
|
* Implement flush IPI by CALL_FUNCTION_VECTOR, Alex Shi
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#ifdef CONFIG_SMP
|
||||||
|
|
||||||
struct flush_tlb_info {
|
struct flush_tlb_info {
|
||||||
struct mm_struct *flush_mm;
|
struct mm_struct *flush_mm;
|
||||||
unsigned long flush_start;
|
unsigned long flush_start;
|
||||||
@ -353,3 +355,5 @@ static int __init create_tlb_single_page_flush_ceiling(void)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
late_initcall(create_tlb_single_page_flush_ceiling);
|
late_initcall(create_tlb_single_page_flush_ceiling);
|
||||||
|
|
||||||
|
#endif /* CONFIG_SMP */
|
||||||
|
Loading…
Reference in New Issue
Block a user