aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/mm/vmem.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/mm/vmem.c')
-rw-r--r--arch/s390/mm/vmem.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/s390/mm/vmem.c b/arch/s390/mm/vmem.c
index 8c1970d1dd91..781ff5169560 100644
--- a/arch/s390/mm/vmem.c
+++ b/arch/s390/mm/vmem.c
@@ -61,12 +61,12 @@ static inline pmd_t *vmem_pmd_alloc(void)
61 return pmd; 61 return pmd;
62} 62}
63 63
64static pte_t __ref *vmem_pte_alloc(void) 64static pte_t __ref *vmem_pte_alloc(unsigned long address)
65{ 65{
66 pte_t *pte; 66 pte_t *pte;
67 67
68 if (slab_is_available()) 68 if (slab_is_available())
69 pte = (pte_t *) page_table_alloc(&init_mm); 69 pte = (pte_t *) page_table_alloc(&init_mm, address);
70 else 70 else
71 pte = alloc_bootmem(PTRS_PER_PTE * sizeof(pte_t)); 71 pte = alloc_bootmem(PTRS_PER_PTE * sizeof(pte_t));
72 if (!pte) 72 if (!pte)
@@ -120,7 +120,7 @@ static int vmem_add_mem(unsigned long start, unsigned long size, int ro)
120 } 120 }
121#endif 121#endif
122 if (pmd_none(*pm_dir)) { 122 if (pmd_none(*pm_dir)) {
123 pt_dir = vmem_pte_alloc(); 123 pt_dir = vmem_pte_alloc(address);
124 if (!pt_dir) 124 if (!pt_dir)
125 goto out; 125 goto out;
126 pmd_populate(&init_mm, pm_dir, pt_dir); 126 pmd_populate(&init_mm, pm_dir, pt_dir);
@@ -205,7 +205,7 @@ int __meminit vmemmap_populate(struct page *start, unsigned long nr, int node)
205 205
206 pm_dir = pmd_offset(pu_dir, address); 206 pm_dir = pmd_offset(pu_dir, address);
207 if (pmd_none(*pm_dir)) { 207 if (pmd_none(*pm_dir)) {
208 pt_dir = vmem_pte_alloc(); 208 pt_dir = vmem_pte_alloc(address);
209 if (!pt_dir) 209 if (!pt_dir)
210 goto out; 210 goto out;
211 pmd_populate(&init_mm, pm_dir, pt_dir); 211 pmd_populate(&init_mm, pm_dir, pt_dir);