Rebase patch for RC4

Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
This commit is contained in:
David Abdurachmanov 2023-08-07 14:14:35 +03:00
parent bccf0124d7
commit 77f2261d81
Signed by: davidlt
GPG Key ID: 8B7F1DA0E2C9FDBB
1 changed files with 2 additions and 20 deletions

View File

@ -1,21 +1,3 @@
commit e79633f74b1ef25ddcdc3b0f54335edc799025fa (HEAD)
Author: Alexandre Ghiti <alexghiti@rivosinc.com>
Date: Mon Aug 7 10:15:42 2023 +0000
riscv: Do not allow vmap pud mappings for 3-level page table
The vmalloc_fault() path was removed and to avoid syncing the vmalloc PGD
mappings, they are now preallocated. But if the kernel can use a PUD mapping
(which in sv39 is actually a PGD mapping) for large vmalloc allocation, it
will free the current unused preallocated PGD mapping and install a new leaf
one. Since there is no sync anymore, some page tables lack this new mapping
and that triggers a panic.
So only allow PUD mappings for sv48 and sv57.
Fixes: 7d3332be011e ("riscv: mm: Pre-allocate PGD entries for vmalloc/modules area")
Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
diff --git a/arch/riscv/include/asm/vmalloc.h b/arch/riscv/include/asm/vmalloc.h
index 58d3e447f191..924d01b56c9a 100644
--- a/arch/riscv/include/asm/vmalloc.h
@ -31,8 +13,8 @@ index 58d3e447f191..924d01b56c9a 100644
#define arch_vmap_pud_supported arch_vmap_pud_supported
static inline bool arch_vmap_pud_supported(pgprot_t prot)
{
- return true;
+ return pgtable_l4_enabled || pgtable_l5_enabled;
- return true;
+ return pgtable_l4_enabled || pgtable_l5_enabled;
}
#define arch_vmap_pmd_supported arch_vmap_pmd_supported