diff options
Diffstat (limited to 'arch/s390/mm/init.c')
-rw-r--r-- | arch/s390/mm/init.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c index 983ec6ec0e7c..8053245fe259 100644 --- a/arch/s390/mm/init.c +++ b/arch/s390/mm/init.c | |||
@@ -112,6 +112,7 @@ void __init paging_init(void) | |||
112 | init_mm.pgd = swapper_pg_dir; | 112 | init_mm.pgd = swapper_pg_dir; |
113 | S390_lowcore.kernel_asce = __pa(init_mm.pgd) & PAGE_MASK; | 113 | S390_lowcore.kernel_asce = __pa(init_mm.pgd) & PAGE_MASK; |
114 | #ifdef CONFIG_64BIT | 114 | #ifdef CONFIG_64BIT |
115 | /* A three level page table (4TB) is enough for the kernel space. */ | ||
115 | S390_lowcore.kernel_asce |= _ASCE_TYPE_REGION3 | _ASCE_TABLE_LENGTH; | 116 | S390_lowcore.kernel_asce |= _ASCE_TYPE_REGION3 | _ASCE_TABLE_LENGTH; |
116 | pgd_type = _REGION3_ENTRY_EMPTY; | 117 | pgd_type = _REGION3_ENTRY_EMPTY; |
117 | #else | 118 | #else |
@@ -184,7 +185,7 @@ void kernel_map_pages(struct page *page, int numpages, int enable) | |||
184 | pmd = pmd_offset(pud, address); | 185 | pmd = pmd_offset(pud, address); |
185 | pte = pte_offset_kernel(pmd, address); | 186 | pte = pte_offset_kernel(pmd, address); |
186 | if (!enable) { | 187 | if (!enable) { |
187 | ptep_invalidate(address, pte); | 188 | ptep_invalidate(&init_mm, address, pte); |
188 | continue; | 189 | continue; |
189 | } | 190 | } |
190 | *pte = mk_pte_phys(address, __pgprot(_PAGE_TYPE_RW)); | 191 | *pte = mk_pte_phys(address, __pgprot(_PAGE_TYPE_RW)); |