diff options
author | Vineet Gupta <vgupta@kernel.org> | 2021-08-12 12:54:43 -0700 |
---|---|---|
committer | Vineet Gupta <vgupta@kernel.org> | 2021-08-26 13:42:42 -0700 |
commit | d9820ff76f95fa26d33e412254a89cd65b23142d (patch) | |
tree | 4f7fcc648a3b08f5533923b05abbd00c29879b6d /arch/arc/include/asm/pgtable-levels.h | |
parent | f35534a2bcc7fd614a11aa7e3d91a0b1d6c962fb (diff) |
ARC: mm: switch pgtable_t back to struct page *
So far ARC pgtable_t has not been struct page based to avoid extra
page_address() calls involved. However the differences are down to
noise and get in the way of using generic code, hence this patch.
This also allows us to reuse generic THP depost/withdraw code.
There's some additional consideration for PGDIR_SHIFT in 4K page config.
Now due to page tables being PAGE_SIZE deep only, the address split
can't be really arbitrary.
Tested-by: kernel test robot <lkp@intel.com>
Suggested-by: Mike Rapoport <rppt@linux.ibm.com>
Acked-by: Mike Rapoport <rppt@linux.ibm.com>
Signed-off-by: Vineet Gupta <vgupta@kernel.org>
Diffstat (limited to 'arch/arc/include/asm/pgtable-levels.h')
-rw-r--r-- | arch/arc/include/asm/pgtable-levels.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/arc/include/asm/pgtable-levels.h b/arch/arc/include/asm/pgtable-levels.h index e65fb8c9da12..561dedab79ed 100644 --- a/arch/arc/include/asm/pgtable-levels.h +++ b/arch/arc/include/asm/pgtable-levels.h @@ -35,9 +35,15 @@ #else /* * No Super page case - * Default value provides 11:8:13 (8K), 11:9:12 (4K) + * Default value provides 11:8:13 (8K), 10:10:12 (4K) + * Limits imposed by pgtable_t only PAGE_SIZE long + * (so 4K page can only have 1K entries: or 10 bits) */ +#ifdef CONFIG_ARC_PAGE_SIZE_4K +#define PGDIR_SHIFT 22 +#else #define PGDIR_SHIFT 21 +#endif #endif |