aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2008-03-17 19:37:05 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-24 17:57:31 -0400
commitc20311e165eb94f5ef12b15e452cc6ec24bd7813 (patch)
tree2f3d452b2d0250a76925058c5b085d4f7bdfa650
parentf9fbf1a36a6bb6a639459802bccee01185ee3220 (diff)
x86/pgtable.h: demacro ptep_clear_flush_young
Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
-rw-r--r--arch/x86/mm/pgtable.c12
-rw-r--r--include/asm-x86/pgtable.h10
2 files changed, 14 insertions, 8 deletions
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index 54bd77a7eee0..af0c50161d95 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -295,3 +295,15 @@ int ptep_test_and_clear_young(struct vm_area_struct *vma,
295 295
296 return ret; 296 return ret;
297} 297}
298
299int ptep_clear_flush_young(struct vm_area_struct *vma,
300 unsigned long address, pte_t *ptep)
301{
302 int young;
303
304 young = ptep_test_and_clear_young(vma, address, ptep);
305 if (young)
306 flush_tlb_page(vma, address);
307
308 return young;
309}
diff --git a/include/asm-x86/pgtable.h b/include/asm-x86/pgtable.h
index 676408c98631..4ebea41ea70e 100644
--- a/include/asm-x86/pgtable.h
+++ b/include/asm-x86/pgtable.h
@@ -398,14 +398,8 @@ extern int ptep_test_and_clear_young(struct vm_area_struct *vma,
398 unsigned long addr, pte_t *ptep); 398 unsigned long addr, pte_t *ptep);
399 399
400#define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH 400#define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH
401#define ptep_clear_flush_young(vma, address, ptep) \ 401extern int ptep_clear_flush_young(struct vm_area_struct *vma,
402({ \ 402 unsigned long address, pte_t *ptep);
403 int __young; \
404 __young = ptep_test_and_clear_young((vma), (address), (ptep)); \
405 if (__young) \
406 flush_tlb_page(vma, address); \
407 __young; \
408})
409 403
410#define __HAVE_ARCH_PTEP_GET_AND_CLEAR 404#define __HAVE_ARCH_PTEP_GET_AND_CLEAR
411static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, 405static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,