[PATCH v2 2/5] mm/kmsan: skip vunmap_range_noflush when KMSAN is disabled
From: Hao Ge
Date: Mon Oct 19 2026 - 01:45:30 EST
kmsan_vmap_pages_range_noflush() returns 0 when kmsan_enabled is
false. The unmap side does not, so it still walks the shadow and
origin page tables even though KMSAN never installed any metadata
there.
Add the matching early return.
Reported-by: Sashiko <sashiko-bot@xxxxxxxxxx>
Cc: stable@xxxxxxxxxxxxxxx
Signed-off-by: Hao Ge <hao.ge@xxxxxxxxx>
---
mm/kmsan/hooks.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/mm/kmsan/hooks.c b/mm/kmsan/hooks.c
index a706666db097..107f66841274 100644
--- a/mm/kmsan/hooks.c
+++ b/mm/kmsan/hooks.c
@@ -138,6 +138,9 @@ static unsigned long vmalloc_origin(unsigned long addr)
void kmsan_vunmap_range_noflush(unsigned long start, unsigned long end)
{
+ if (!kmsan_enabled)
+ return;
+
__vunmap_range_noflush(vmalloc_shadow(start), vmalloc_shadow(end));
__vunmap_range_noflush(vmalloc_origin(start), vmalloc_origin(end));
flush_cache_vmap(vmalloc_shadow(start), vmalloc_shadow(end));
--
2.25.1