From 13e280eb1b9d273616fc844ba74c5ab4137ed148 Mon Sep 17 00:00:00 2001 From: Jeremy Fitzhardinge Date: Mon, 17 Mar 2008 16:37:05 -0700 Subject: [PATCH] --- yaml --- r: 93147 b: refs/heads/master c: c20311e165eb94f5ef12b15e452cc6ec24bd7813 h: refs/heads/master i: 93145: 085c957fdfa1e90709aa0d99af28f1133aa2bb66 93143: a671a58946563966e5e7a1d8fcc617b41d662d7a v: v3 --- [refs] | 2 +- trunk/arch/x86/mm/pgtable.c | 12 ++++++++++++ trunk/include/asm-x86/pgtable.h | 10 ++-------- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index b8a9bd10a74a..1d36553b8e43 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f9fbf1a36a6bb6a639459802bccee01185ee3220 +refs/heads/master: c20311e165eb94f5ef12b15e452cc6ec24bd7813 diff --git a/trunk/arch/x86/mm/pgtable.c b/trunk/arch/x86/mm/pgtable.c index 54bd77a7eee0..af0c50161d95 100644 --- a/trunk/arch/x86/mm/pgtable.c +++ b/trunk/arch/x86/mm/pgtable.c @@ -295,3 +295,15 @@ int ptep_test_and_clear_young(struct vm_area_struct *vma, return ret; } + +int ptep_clear_flush_young(struct vm_area_struct *vma, + unsigned long address, pte_t *ptep) +{ + int young; + + young = ptep_test_and_clear_young(vma, address, ptep); + if (young) + flush_tlb_page(vma, address); + + return young; +} diff --git a/trunk/include/asm-x86/pgtable.h b/trunk/include/asm-x86/pgtable.h index 676408c98631..4ebea41ea70e 100644 --- a/trunk/include/asm-x86/pgtable.h +++ b/trunk/include/asm-x86/pgtable.h @@ -398,14 +398,8 @@ extern int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep); #define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH -#define ptep_clear_flush_young(vma, address, ptep) \ -({ \ - int __young; \ - __young = ptep_test_and_clear_young((vma), (address), (ptep)); \ - if (__young) \ - flush_tlb_page(vma, address); \ - __young; \ -}) +extern int ptep_clear_flush_young(struct vm_area_struct *vma, + unsigned long address, pte_t *ptep); #define __HAVE_ARCH_PTEP_GET_AND_CLEAR static inline pte_t ptep_get_and_clear(struct mm_struct *mm, unsigned long addr,