diff options
Diffstat (limited to 'arch/s390/mm/dump_pagetables.c')
-rw-r--r-- | arch/s390/mm/dump_pagetables.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/s390/mm/dump_pagetables.c b/arch/s390/mm/dump_pagetables.c index cd1c62d160ed..cbc6668acb85 100644 --- a/arch/s390/mm/dump_pagetables.c +++ b/arch/s390/mm/dump_pagetables.c | |||
@@ -18,6 +18,9 @@ enum address_markers_idx { | |||
18 | KERNEL_END_NR, | 18 | KERNEL_END_NR, |
19 | VMEMMAP_NR, | 19 | VMEMMAP_NR, |
20 | VMALLOC_NR, | 20 | VMALLOC_NR, |
21 | #ifdef CONFIG_64BIT | ||
22 | MODULES_NR, | ||
23 | #endif | ||
21 | }; | 24 | }; |
22 | 25 | ||
23 | static struct addr_marker address_markers[] = { | 26 | static struct addr_marker address_markers[] = { |
@@ -26,6 +29,9 @@ static struct addr_marker address_markers[] = { | |||
26 | [KERNEL_END_NR] = {(unsigned long)&_end, "Kernel Image End"}, | 29 | [KERNEL_END_NR] = {(unsigned long)&_end, "Kernel Image End"}, |
27 | [VMEMMAP_NR] = {0, "vmemmap Area"}, | 30 | [VMEMMAP_NR] = {0, "vmemmap Area"}, |
28 | [VMALLOC_NR] = {0, "vmalloc Area"}, | 31 | [VMALLOC_NR] = {0, "vmalloc Area"}, |
32 | #ifdef CONFIG_64BIT | ||
33 | [MODULES_NR] = {0, "Modules Area"}, | ||
34 | #endif | ||
29 | { -1, NULL } | 35 | { -1, NULL } |
30 | }; | 36 | }; |
31 | 37 | ||
@@ -205,11 +211,12 @@ static int pt_dump_init(void) | |||
205 | * kernel ASCE. We need this to keep the page table walker functions | 211 | * kernel ASCE. We need this to keep the page table walker functions |
206 | * from accessing non-existent entries. | 212 | * from accessing non-existent entries. |
207 | */ | 213 | */ |
208 | #ifdef CONFIG_64BIT | 214 | #ifdef CONFIG_32BIT |
215 | max_addr = 1UL << 31; | ||
216 | #else | ||
209 | max_addr = (S390_lowcore.kernel_asce & _REGION_ENTRY_TYPE_MASK) >> 2; | 217 | max_addr = (S390_lowcore.kernel_asce & _REGION_ENTRY_TYPE_MASK) >> 2; |
210 | max_addr = 1UL << (max_addr * 11 + 31); | 218 | max_addr = 1UL << (max_addr * 11 + 31); |
211 | #else | 219 | address_markers[MODULES_NR].start_address = MODULES_VADDR; |
212 | max_addr = 1UL << 31; | ||
213 | #endif | 220 | #endif |
214 | address_markers[VMEMMAP_NR].start_address = (unsigned long) vmemmap; | 221 | address_markers[VMEMMAP_NR].start_address = (unsigned long) vmemmap; |
215 | address_markers[VMALLOC_NR].start_address = VMALLOC_START; | 222 | address_markers[VMALLOC_NR].start_address = VMALLOC_START; |