summaryrefslogtreecommitdiff
path: root/include/asm-generic
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@intel.com>2012-06-28 09:02:21 +0800
committerH. Peter Anvin <hpa@zytor.com>2012-06-27 19:29:11 -0700
commit597e1c3580b7cfd95bb0f3167e2b297bf8a5a3ae (patch)
treed67c27b8505af6f7f21fa918599c2e9d37c2e5e1 /include/asm-generic
parent3df3212f9722c7e45c723b9ea231a04ba4dbc47c (diff)
downloadkernel-common-597e1c3580b7cfd95bb0f3167e2b297bf8a5a3ae.tar.gz
kernel-common-597e1c3580b7cfd95bb0f3167e2b297bf8a5a3ae.tar.bz2
kernel-common-597e1c3580b7cfd95bb0f3167e2b297bf8a5a3ae.zip
mm/mmu_gather: enable tlb flush range in generic mmu_gather
This patch enabled the tlb flush range support in generic mmu layer. Most of arch has self tlb flush range support, like ARM/IA64 etc. X86 arch has no this support in hardware yet. But another instruction 'invlpg' can implement this function in some degree. So, enable this feather in generic layer for x86 now. and maybe useful for other archs in further. Generic mmu_gather struct is protected by micro HAVE_GENERIC_MMU_GATHER. Other archs that has flush range supported own self mmu_gather struct. So, now this change is safe for them. In future we may unify this struct and related functions on multiple archs. Thanks for Peter Zijlstra time and time reminder for multiple architecture code safe! Signed-off-by: Alex Shi <alex.shi@intel.com> Link: http://lkml.kernel.org/r/1340845344-27557-7-git-send-email-alex.shi@intel.com Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'include/asm-generic')
-rw-r--r--include/asm-generic/tlb.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h
index 75e888b3cfd2..ed6642ad03e0 100644
--- a/include/asm-generic/tlb.h
+++ b/include/asm-generic/tlb.h
@@ -86,6 +86,8 @@ struct mmu_gather {
#ifdef CONFIG_HAVE_RCU_TABLE_FREE
struct mmu_table_batch *batch;
#endif
+ unsigned long start;
+ unsigned long end;
unsigned int need_flush : 1, /* Did free PTEs */
fast_mode : 1; /* No batching */