parisc: fix map_pages() to actually populate upper directory
authorMike Rapoport <rppt@linux.ibm.com>
Wed, 8 Jan 2020 12:58:52 +0000 (14:58 +0200)
committerHelge Deller <deller@gmx.de>
Tue, 14 Jan 2020 08:18:39 +0000 (09:18 +0100)
The commit d96885e277b5 ("parisc: use pgtable-nopXd instead of
4level-fixup") converted PA-RISC to use folded page tables, but it missed
the conversion of pgd_populate() to pud_populate() in maps_pages()
function. This caused the upper page table directory to remain empty and
the system would crash as a result.

Using pud_populate() that actually populates the page table instead of
dummy pgd_populate() fixes the issue.

Fixes: d96885e277b5 ("parisc: use pgtable-nopXd instead of 4level-fixup")
Reported-by: Meelis Roos <mroos@linux.ee>
Reported-by: Jeroen Roovers <jer@gentoo.org>
Reported-by: Mikulas Patocka <mpatocka@redhat.com>
Tested-by: Jeroen Roovers <jer@gentoo.org>
Tested-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Rapoport <rppt@linux.ibm.com>
Signed-off-by: Helge Deller <deller@gmx.de>
arch/parisc/mm/init.c

index ddca8287d43bac22e772854d7100975312146866..354cf060b67fc1d4964d0e24cb811b4a48c5cc32 100644 (file)
@@ -401,7 +401,7 @@ static void __init map_pages(unsigned long start_vaddr,
                        pmd = (pmd_t *) __pa(pmd);
                }
 
-               pgd_populate(NULL, pg_dir, __va(pmd));
+               pud_populate(NULL, (pud_t *)pg_dir, __va(pmd));
 #endif
                pg_dir++;