diff options
author | Hari Bathini <hbathini@linux.vnet.ibm.com> | 2017-11-11 02:13:54 +0900 |
---|---|---|
committer | Atsushi Kumagai <ats-kumagai@wm.jp.nec.com> | 2018-01-23 11:41:24 +0900 |
commit | 3c39f139d5b60a47e7233ea675d6ab0a1b7bf1d6 (patch) | |
tree | d157e3fa6bafc34838669c911e2ef8d803e75f68 | |
parent | 13d3059c6df80d121b095d0ccf6bd1c287323bc5 (diff) |
[PATCH] ppc64: update hash page table geometry
* Required for kernel 4.12
Starting with kernel 4.12, BOOK3S hash page table geometry is updated
to accommodate larger virtual address range. Update here accordingly.
Signed-off-by: Hari Bathini <hbathini@linux.vnet.ibm.com>
-rw-r--r-- | arch/ppc64.c | 12 | ||||
-rw-r--r-- | makedumpfile.h | 3 |
2 files changed, 12 insertions, 3 deletions
diff --git a/arch/ppc64.c b/arch/ppc64.c index 2f5a0da..8bdbcc5 100644 --- a/arch/ppc64.c +++ b/arch/ppc64.c @@ -245,10 +245,16 @@ ppc64_vmalloc_init(void) } else if (info->kernel_version >= KERNEL_VERSION(4, 6, 0)) { info->l1_index_size = PTE_INDEX_SIZE_L4_64K_3_10; - info->l2_index_size = PMD_INDEX_SIZE_L4_64K_4_6; - info->l3_index_size = PUD_INDEX_SIZE_L4_64K_4_6; - info->l4_index_size = PGD_INDEX_SIZE_L4_64K_3_10; + if (info->kernel_version >= KERNEL_VERSION(4, 12, 0)) { + info->l2_index_size = PMD_INDEX_SIZE_L4_64K_4_12; + info->l3_index_size = PUD_INDEX_SIZE_L4_64K_4_12; + info->l4_index_size = PGD_INDEX_SIZE_L4_64K_4_12; + } else { + info->l2_index_size = PMD_INDEX_SIZE_L4_64K_4_6; + info->l3_index_size = PUD_INDEX_SIZE_L4_64K_4_6; + info->l4_index_size = PGD_INDEX_SIZE_L4_64K_3_10; + } } else if (info->kernel_version >= KERNEL_VERSION(3, 10, 0)) { info->l1_index_size = PTE_INDEX_SIZE_L4_64K_3_10; info->l2_index_size = PMD_INDEX_SIZE_L4_64K_3_10; diff --git a/makedumpfile.h b/makedumpfile.h index 393be3a..40dba00 100644 --- a/makedumpfile.h +++ b/makedumpfile.h @@ -669,6 +669,9 @@ unsigned long get_kvbase_arm64(void); #define PGD_INDEX_SIZE_L4_64K_3_10 12 #define PMD_INDEX_SIZE_L4_64K_4_6 5 #define PUD_INDEX_SIZE_L4_64K_4_6 5 +#define PMD_INDEX_SIZE_L4_64K_4_12 10 +#define PUD_INDEX_SIZE_L4_64K_4_12 7 +#define PGD_INDEX_SIZE_L4_64K_4_12 8 #define PTE_INDEX_SIZE_RADIX_64K 5 #define PMD_INDEX_SIZE_RADIX_64K 9 #define PUD_INDEX_SIZE_RADIX_64K 9 |