diff options
Diffstat (limited to 'arch/x86/mm')
-rw-r--r-- | arch/x86/mm/pgtable.c | 15 |
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 | |||
284 | int 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 | } | ||