mm: group pte related helpers together
This reduces/simplifies the diff for the next patch which moves THP specific code. No semantical changes ! Acked-by: Kirill A. Shutemov kirill.shutemov@linux.intel.com Link: http://lkml.kernel.org/r/1442918096-17454-9-git-send-email-vgupta@synopsys.com Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
This commit is contained in:
parent
443a631283
commit
52585bcc25
|
@ -57,6 +57,31 @@ int ptep_set_access_flags(struct vm_area_struct *vma,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef __HAVE_ARCH_PTEP_CLEAR_FLUSH
|
||||||
|
pte_t ptep_clear_flush(struct vm_area_struct *vma, unsigned long address,
|
||||||
|
pte_t *ptep)
|
||||||
|
{
|
||||||
|
struct mm_struct *mm = (vma)->vm_mm;
|
||||||
|
pte_t pte;
|
||||||
|
pte = ptep_get_and_clear(mm, address, ptep);
|
||||||
|
if (pte_accessible(mm, pte))
|
||||||
|
flush_tlb_page(vma, address);
|
||||||
|
return pte;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS
|
#ifndef __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS
|
||||||
int pmdp_set_access_flags(struct vm_area_struct *vma,
|
int pmdp_set_access_flags(struct vm_area_struct *vma,
|
||||||
unsigned long address, pmd_t *pmdp,
|
unsigned long address, pmd_t *pmdp,
|
||||||
|
@ -77,18 +102,6 @@ int pmdp_set_access_flags(struct vm_area_struct *vma,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __HAVE_ARCH_PMDP_CLEAR_YOUNG_FLUSH
|
#ifndef __HAVE_ARCH_PMDP_CLEAR_YOUNG_FLUSH
|
||||||
int pmdp_clear_flush_young(struct vm_area_struct *vma,
|
int pmdp_clear_flush_young(struct vm_area_struct *vma,
|
||||||
unsigned long address, pmd_t *pmdp)
|
unsigned long address, pmd_t *pmdp)
|
||||||
|
@ -106,19 +119,6 @@ int pmdp_clear_flush_young(struct vm_area_struct *vma,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef __HAVE_ARCH_PTEP_CLEAR_FLUSH
|
|
||||||
pte_t ptep_clear_flush(struct vm_area_struct *vma, unsigned long address,
|
|
||||||
pte_t *ptep)
|
|
||||||
{
|
|
||||||
struct mm_struct *mm = (vma)->vm_mm;
|
|
||||||
pte_t pte;
|
|
||||||
pte = ptep_get_and_clear(mm, address, ptep);
|
|
||||||
if (pte_accessible(mm, pte))
|
|
||||||
flush_tlb_page(vma, address);
|
|
||||||
return pte;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __HAVE_ARCH_PMDP_HUGE_CLEAR_FLUSH
|
#ifndef __HAVE_ARCH_PMDP_HUGE_CLEAR_FLUSH
|
||||||
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
#ifdef CONFIG_TRANSPARENT_HUGEPAGE
|
||||||
pmd_t pmdp_huge_clear_flush(struct vm_area_struct *vma, unsigned long address,
|
pmd_t pmdp_huge_clear_flush(struct vm_area_struct *vma, unsigned long address,
|
||||||
|
|
Loading…
Reference in New Issue