s390/vmemmap: fallback to PTEs if mapping large PMD fails
authorDavid Hildenbrand <david@redhat.com>
Wed, 22 Jul 2020 09:45:56 +0000 (11:45 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Mon, 27 Jul 2020 08:34:03 +0000 (10:34 +0200)
Let's fallback to single pages if short on huge pages. No need to stop
memory hotplug.

Cc: Vasily Gorbik <gor@linux.ibm.com>
Cc: Christian Borntraeger <borntraeger@de.ibm.com>
Cc: Gerald Schaefer <gerald.schaefer@de.ibm.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20200722094558.9828-8-david@redhat.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/mm/vmem.c

index b831f9f..e82a63d 100644 (file)
@@ -180,10 +180,10 @@ static int __ref modify_pmd_table(pud_t *pud, unsigned long addr,
                                 */
                                new_page = vmemmap_alloc_block(PMD_SIZE,
                                                               NUMA_NO_NODE);
-                               if (!new_page)
-                                       goto out;
-                               pmd_val(*pmd) = __pa(new_page) | prot;
-                               continue;
+                               if (new_page) {
+                                       pmd_val(*pmd) = __pa(new_page) | prot;
+                                       continue;
+                               }
                        }
                        pte = vmem_pte_alloc();
                        if (!pte)