Rebase patch for RC4
Signed-off-by: David Abdurachmanov <davidlt@rivosinc.com>
This commit is contained in:
parent
bccf0124d7
commit
77f2261d81
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user