x86/kasan: Panic if there is not enough memory to boot
authorAndrey Ryabinin <aryabinin@virtuozzo.com>
Wed, 10 Jan 2018 15:36:02 +0000 (18:36 +0300)
committerThomas Gleixner <tglx@linutronix.de>
Sun, 14 Jan 2018 23:32:35 +0000 (00:32 +0100)
commit0d39e2669d7b0fefd2d8f9e7868ae669b364d9ba
treec02373bb8b2457a2d2a46c1b1bac755d55c0302d
parentb8b9ce4b5aec8de9e23cabb0a26b78641f9ab1d6
x86/kasan: Panic if there is not enough memory to boot

Currently KASAN doesn't panic in case it don't have enough memory
to boot. Instead, it crashes in some random place:

 kernel BUG at arch/x86/mm/physaddr.c:27!

 RIP: 0010:__phys_addr+0x268/0x276
 Call Trace:
  kasan_populate_shadow+0x3f2/0x497
  kasan_init+0x12e/0x2b2
  setup_arch+0x2825/0x2a2c
  start_kernel+0xc8/0x15f4
  x86_64_start_reservations+0x2a/0x2c
  x86_64_start_kernel+0x72/0x75
  secondary_startup_64+0xa5/0xb0

Use memblock_virt_alloc_try_nid() for allocations without failure
fallback. It will panic with an out of memory message.

Reported-by: kernel test robot <xiaolong.ye@intel.com>
Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Dmitry Vyukov <dvyukov@google.com>
Cc: kasan-dev@googlegroups.com
Cc: Alexander Potapenko <glider@google.com>
Cc: lkp@01.org
Link: https://lkml.kernel.org/r/20180110153602.18919-1-aryabinin@virtuozzo.com
arch/x86/mm/kasan_init_64.c