kmsan: enter the runtime around kmsan_internal_memmove_metadata() call
authorAlexander Potapenko <glider@google.com>
Wed, 7 May 2025 16:00:11 +0000 (18:00 +0200)
committerAndrew Morton <akpm@linux-foundation.org>
Wed, 21 May 2025 16:55:16 +0000 (09:55 -0700)
commite17c1f15b0ccfa4802cedbd464d00ece50a10cf1
tree350fa7a9c93670309b881cd191a50a4f17b19b03
parentce6a1c978f9c2beb38dbb1793799614255094290
kmsan: enter the runtime around kmsan_internal_memmove_metadata() call

kmsan_internal_memmove_metadata() transitively calls stack_depot_save()
(via kmsan_internal_chain_origin() and kmsan_save_stack_with_flags()),
which may allocate memory.  Guard it with kmsan_enter_runtime() and
kmsan_leave_runtime() to avoid recursion.

This bug was spotted by CONFIG_WARN_CAPABILITY_ANALYSIS=y

Link: https://lkml.kernel.org/r/20250507160012.3311104-4-glider@google.com
Signed-off-by: Alexander Potapenko <glider@google.com>
Acked-by: Marco Elver <elver@google.com>
Cc: Bart Van Assche <bvanassche@acm.org>
Cc: Kent Overstreet <kent.overstreet@linux.dev>
Cc: Dmitriy Vyukov <dvyukov@google.com>
Cc: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/kmsan/hooks.c