As pointed out by Peter Zijlstra, __msan_poison_alloca() does not play well with IRQ code when PREEMPT_RT is on, because in that mode even GFP_ATOMIC allocations cannot be performed. Fixing this would require making stackdepot completely lockless, which is quite challenging and may be excessive for the time being. Instead, make sure KMSAN is incompatible with PREEMPT_RT, like other debug configs are.
Showing the changes to lib (1 of 1 file). Show all
Unified · Split
| @@ -12,6 +12,7 @@ config KMSAN · 11 unmodified lines | |||
| 12 | bool "KMSAN: detector of uninitialized values use" | 12 | bool "KMSAN: detector of uninitialized values use" |
| 13 | depends on HAVE_ARCH_KMSAN && HAVE_KMSAN_COMPILER | 13 | depends on HAVE_ARCH_KMSAN && HAVE_KMSAN_COMPILER |
| 14 | depends on SLUB && DEBUG_KERNEL && !KASAN && !KCSAN | 14 | depends on SLUB && DEBUG_KERNEL && !KASAN && !KCSAN |
| 15 | depends on !PREEMPT_RT | ||
| 15 | select STACKDEPOT | 16 | select STACKDEPOT |
| 16 | select STACKDEPOT_ALWAYS_INIT | 17 | select STACKDEPOT_ALWAYS_INIT |
| 17 | help | 18 | help |