aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/mm
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/mm')
-rw-r--r--arch/x86/mm/pgtable.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index e7cda2057e1d..54bd77a7eee0 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -280,3 +280,18 @@ int ptep_set_access_flags(struct vm_area_struct *vma,
280 280
281 return changed; 281 return changed;
282} 282}
283
284int ptep_test_and_clear_young(struct vm_area_struct *vma,
285 unsigned long addr, pte_t *ptep)
286{
287 int ret = 0;
288
289 if (pte_young(*ptep))
290 ret = test_and_clear_bit(_PAGE_BIT_ACCESSED,
291 &ptep->pte);
292
293 if (ret)
294 pte_update(vma->vm_mm, addr, ptep);
295
296 return ret;
297}