On Thu, Oct 21, 2021 at 10:09:28AM +0300, Mike Rapoport wrote: > From: Mike Rapoport <rppt@xxxxxxxxxxxxx> > > Commit 6e44bd6d34d6 ("memblock: exclude NOMAP regions from kmemleak") > breaks boot on EFI systems with kmemleak and VM_DEBUG enabled: > > efi: Processing EFI memory map: > efi: 0x000090000000-0x000091ffffff [Conventional| | | | | | | | | | |WB|WT|WC|UC] > efi: 0x000092000000-0x0000928fffff [Runtime Data|RUN| | | | | | | | | |WB|WT|WC|UC] > ------------[ cut here ]------------ > kernel BUG at mm/kmemleak.c:1140! > Internal error: Oops - BUG: 0 [#1] SMP > Modules linked in: > CPU: 0 PID: 0 Comm: swapper Not tainted 5.15.0-rc6-next-20211019+ #104 > pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > pc : kmemleak_free_part_phys+0x64/0x8c > lr : kmemleak_free_part_phys+0x38/0x8c > sp : ffff800011eafbc0 > x29: ffff800011eafbc0 x28: 1fffff7fffb41c0d x27: fffffbfffda0e068 > x26: 0000000092000000 x25: 1ffff000023d5f94 x24: ffff800011ed84d0 > x23: ffff800011ed84c0 x22: ffff800011ed83d8 x21: 0000000000900000 > x20: ffff800011782000 x19: 0000000092000000 x18: ffff800011ee0730 > x17: 0000000000000000 x16: 0000000000000000 x15: 1ffff0000233252c > x14: ffff800019a905a0 x13: 0000000000000001 x12: ffff7000023d5ed7 > x11: 1ffff000023d5ed6 x10: ffff7000023d5ed6 x9 : dfff800000000000 > x8 : ffff800011eaf6b7 x7 : 0000000000000001 x6 : ffff800011eaf6b0 > x5 : 00008ffffdc2a12a x4 : ffff7000023d5ed7 x3 : 1ffff000023dbf99 > x2 : 1ffff000022f0463 x1 : 0000000000000000 x0 : ffffffffffffffff > Call trace: > kmemleak_free_part_phys+0x64/0x8c > memblock_mark_nomap+0x5c/0x78 > reserve_regions+0x294/0x33c > efi_init+0x2d0/0x490 > setup_arch+0x80/0x138 > start_kernel+0xa0/0x3ec > __primary_switched+0xc0/0xc8 > Code: 34000041 97d526e7 f9418e80 36000040 (d4210000) > random: get_random_bytes called from print_oops_end_marker+0x34/0x80 with crng_init=0 > ---[ end trace 0000000000000000 ]--- > > The crash happens because kmemleak_free_part_phys() tries to use __va() > before memstart_addr is initialized and this triggers a VM_BUG_ON() in > arch/arm64/include/asm/memory.h: > > Revert 6e44bd6d34d6 ("memblock: exclude NOMAP regions from kmemleak"), the > issue it is fixing will be fixed differently. > > Reported-by: Qian Cai <quic_qiancai@xxxxxxxxxxx> > Signed-off-by: Mike Rapoport <rppt@xxxxxxxxxxxxx> Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>