Re: [PATCH v4 0/3] LoongArch: Move KASLR to EFI stub to avoid initrd overlap
Huacai Chen <[email protected]> Sat, 9 May 2026 22:10:40 +0800
| Newsgroups | org.kernel.vger.linux-efi,dev.linux.lists.loongarch,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <CAAhV-H7yU4Vf6K+f164_QWBkvNn4MzyzFDrCXsOmS=NnA9YmqA@mail.gmail.com> |
Applied, thanks. Huacai On Wed, Apr 29, 2026 at 8:03 PM WANG Rui <[email protected]> wrote: > > Changes since [v3]: > * Minor cleanups based on review comments. > > Changes since [v2]: > * Add a new patch to prevent initrd overlap during relocation. > * Revert changes to the CONFIG_RANDOMIZE_BASE_MAX_OFFSET range. > > Changes since [v1]: > * Drop the patch "LoongArch: Allow rdtime_h() and rdtime_l() in 64-bit builds". > * Use random_get_entropy() instead of rdtime_l(). > > This series addresses a potential overlap issue between the kernel > image and the initrd when KASLR is enabled. > > In the normal boot flow, the bootloader is responsible for loading > both vmlinux and the initrd, and it can guarantee that the two do > not overlap in memory. However, this assumption only holds as long > as neither image changes its location afterwards. > > The in-kernel KASLR implementation breaks that assumption. When the > initrd is placed close to the kernel image, randomizing the kernel > location at runtime may move it into the initrd region, leading to > memory corruption early during boot. > > To fix this, this series moves the KASLR logic out of the kernel > proper and into the EFI stub. With this change, the final placement > of both the kernel image and the initrd is determined by the EFI > memory allocator. This ensures that the two allocations are > coordinated and cannot overlap. > > Functionally, the kernel still supports KASLR as before, but the > randomization now happens before the kernel is entered, rather than > during early kernel relocation. > > [v3]: https://lore.kernel.org/loongarch/[email protected] > [v2]: https://lore.kernel.org/loongarch/[email protected] > [v1]: https://lore.kernel.org/loongarch/[email protected] > > WANG Rui (3): > efi/loongarch: Randomize kernel preferred address for KASLR > LoongArch: Skip relocation-time KASLR if it has already been applied > LoongArch: Avoid initrd overlap during kernel relocation > > arch/loongarch/include/asm/efi.h | 4 +- > arch/loongarch/kernel/relocate.c | 49 ++++++++++++++++++++++++ > drivers/firmware/efi/libstub/loongarch.c | 16 ++++++++ > 3 files changed, 68 insertions(+), 1 deletion(-) > > -- > 2.54.0 > >