On s390 the virtual address 0 is valid (current CPU's lowcore is mapped
there), therefore KMSAN should not complain about it.

Disable the respective check on s390. There doesn't seem to be a
Kconfig option to describe this situation, so explicitly check for
s390.

Reviewed-by: Alexander Potapenko <gli...@google.com>
Signed-off-by: Ilya Leoshkevich <i...@linux.ibm.com>
---
 mm/kmsan/init.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/mm/kmsan/init.c b/mm/kmsan/init.c
index ffedf4dbc49d..7a3df4d359f8 100644
--- a/mm/kmsan/init.c
+++ b/mm/kmsan/init.c
@@ -33,7 +33,10 @@ static void __init kmsan_record_future_shadow_range(void 
*start, void *end)
        bool merged = false;
 
        KMSAN_WARN_ON(future_index == NUM_FUTURE_RANGES);
-       KMSAN_WARN_ON((nstart >= nend) || !nstart || !nend);
+       KMSAN_WARN_ON((nstart >= nend) ||
+                     /* Virtual address 0 is valid on s390. */
+                     (!IS_ENABLED(CONFIG_S390) && !nstart) ||
+                     !nend);
        nstart = ALIGN_DOWN(nstart, PAGE_SIZE);
        nend = ALIGN(nend, PAGE_SIZE);
 
-- 
2.41.0


Reply via email to