Let's fallback to single pages if short on huge pages. No need to stop
memory hotplug.

Cc: Heiko Carstens <heiko.carst...@de.ibm.com>
Cc: Vasily Gorbik <g...@linux.ibm.com>
Cc: Christian Borntraeger <borntrae...@de.ibm.com>
Cc: Gerald Schaefer <gerald.schae...@de.ibm.com>
Signed-off-by: David Hildenbrand <da...@redhat.com>
---
 arch/s390/mm/vmem.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/arch/s390/mm/vmem.c b/arch/s390/mm/vmem.c
index 5239130770b7b..b7fdb9536707f 100644
--- a/arch/s390/mm/vmem.c
+++ b/arch/s390/mm/vmem.c
@@ -422,23 +422,23 @@ int __meminit vmemmap_populate(unsigned long start, 
unsigned long end, int node,
                }
 
                pm_dir = pmd_offset(pu_dir, address);
-               if (pmd_none(*pm_dir)) {
+               if (pmd_none(*pm_dir) && MACHINE_HAS_EDAT1) {
+                       void *new_page;
+
                        /* Use 1MB frames for vmemmap if available. We always
                         * use large frames even if they are only partially
                         * used.
                         * Otherwise we would have also page tables since
                         * vmemmap_populate gets called for each section
                         * separately. */
-                       if (MACHINE_HAS_EDAT1) {
-                               void *new_page;
-
-                               new_page = vmemmap_alloc_block(PMD_SIZE, node);
-                               if (!new_page)
-                                       goto out;
+                       new_page = vmemmap_alloc_block(PMD_SIZE, node);
+                       if (new_page) {
                                pmd_val(*pm_dir) = __pa(new_page) | sgt_prot;
                                address = (address + PMD_SIZE) & PMD_MASK;
                                continue;
                        }
+               }
+               if (pmd_none(*pm_dir)) {
                        pt_dir = vmem_pte_alloc();
                        if (!pt_dir)
                                goto out;
-- 
2.26.2

Reply via email to