riscv: Sync efi page table's kernel mappings before switching
The EFI page table is initially created as a copy of the kernel page table. With VMAP_STACK enabled, kernel stacks are allocated in the vmalloc area: if the stack is allocated in a new PGD (one that was not present at the moment of the efi page table creation or not synced in a previous vmalloc fault), the kernel will take a trap when switching to the efi page table when the vmalloc kernel stack is accessed, resulting in a kernel panic. Fix that by updating the efi kernel mappings before switching to the efi page table. Signed-off-by:Alexandre Ghiti <alexghiti@rivosinc.com> Fixes: b91540d5 ("RISC-V: Add EFI runtime services") Tested-by:
Emil Renner Berthing <emil.renner.berthing@canonical.com> Reviewed-by:
Atish Patra <atishp@rivosinc.com> Link: https://lore.kernel.org/r/20221121133303.1782246-1-alexghiti@rivosinc.comSigned-off-by:
Palmer Dabbelt <palmer@rivosinc.com>
Showing
Please register or sign in to comment