mm: move pgtable related functions to right place
pgtable related functions are mostly in pgtable-generic.c. So move remaining functions from memory.c to pgtable-generic.c. Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Minchan Kim <minchan@kernel.org> Cc: Mel Gorman <mgorman@suse.de> Cc: Rik van Riel <riel@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
e66f097257
commit
bc4b4448db
24
mm/memory.c
24
mm/memory.c
|
@ -372,30 +372,6 @@ void tlb_remove_table(struct mmu_gather *tlb, void *table)
|
||||||
|
|
||||||
#endif /* CONFIG_HAVE_RCU_TABLE_FREE */
|
#endif /* CONFIG_HAVE_RCU_TABLE_FREE */
|
||||||
|
|
||||||
/*
|
|
||||||
* If a p?d_bad entry is found while walking page tables, report
|
|
||||||
* the error, before resetting entry to p?d_none. Usually (but
|
|
||||||
* very seldom) called out from the p?d_none_or_clear_bad macros.
|
|
||||||
*/
|
|
||||||
|
|
||||||
void pgd_clear_bad(pgd_t *pgd)
|
|
||||||
{
|
|
||||||
pgd_ERROR(*pgd);
|
|
||||||
pgd_clear(pgd);
|
|
||||||
}
|
|
||||||
|
|
||||||
void pud_clear_bad(pud_t *pud)
|
|
||||||
{
|
|
||||||
pud_ERROR(*pud);
|
|
||||||
pud_clear(pud);
|
|
||||||
}
|
|
||||||
|
|
||||||
void pmd_clear_bad(pmd_t *pmd)
|
|
||||||
{
|
|
||||||
pmd_ERROR(*pmd);
|
|
||||||
pmd_clear(pmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Note: this doesn't free the actual pages themselves. That
|
* Note: this doesn't free the actual pages themselves. That
|
||||||
* has been handled earlier when unmapping all the memory regions.
|
* has been handled earlier when unmapping all the memory regions.
|
||||||
|
|
|
@ -10,6 +10,30 @@
|
||||||
#include <asm/tlb.h>
|
#include <asm/tlb.h>
|
||||||
#include <asm-generic/pgtable.h>
|
#include <asm-generic/pgtable.h>
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If a p?d_bad entry is found while walking page tables, report
|
||||||
|
* the error, before resetting entry to p?d_none. Usually (but
|
||||||
|
* very seldom) called out from the p?d_none_or_clear_bad macros.
|
||||||
|
*/
|
||||||
|
|
||||||
|
void pgd_clear_bad(pgd_t *pgd)
|
||||||
|
{
|
||||||
|
pgd_ERROR(*pgd);
|
||||||
|
pgd_clear(pgd);
|
||||||
|
}
|
||||||
|
|
||||||
|
void pud_clear_bad(pud_t *pud)
|
||||||
|
{
|
||||||
|
pud_ERROR(*pud);
|
||||||
|
pud_clear(pud);
|
||||||
|
}
|
||||||
|
|
||||||
|
void pmd_clear_bad(pmd_t *pmd)
|
||||||
|
{
|
||||||
|
pmd_ERROR(*pmd);
|
||||||
|
pmd_clear(pmd);
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS
|
#ifndef __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS
|
||||||
/*
|
/*
|
||||||
* Only sets the access flags (dirty, accessed), as well as write
|
* Only sets the access flags (dirty, accessed), as well as write
|
||||||
|
|
Loading…
Reference in New Issue