]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mm/memtest: add underflow detection for size calculation
authorKevin Lourenco <klourencodev@gmail.com>
Mon, 29 Dec 2025 16:13:21 +0000 (17:13 +0100)
committerMike Rapoport (Microsoft) <rppt@kernel.org>
Fri, 9 Jan 2026 09:53:51 +0000 (11:53 +0200)
The computation:

end = start + (size - (start_phys_aligned - start_phys)) / incr

could theoretically underflow if size < offset, leading to a massive
iteration.

Add VM_WARN_ON_ONCE() to detect cases where the region size is smaller
than the alignment offset. While this should never happen in practice
due to memblock guarantees, the warning helps catch potential bugs in
early memory initialization code.

Suggested-by: Mike Rapoport <rppt@kernel.org>
Signed-off-by: Kevin Lourenco <klourencodev@gmail.com>
Link: https://patch.msgid.link/20251229161321.9079-1-klourencodev@gmail.com
Signed-off-by: Mike Rapoport (Microsoft) <rppt@kernel.org>
mm/memtest.c

index c2c609c3911994a8a877b16a6194860e573f8331..520d41534cfa0570917a65e369c39324a0c3a486 100644 (file)
@@ -50,6 +50,8 @@ static void __init memtest(u64 pattern, phys_addr_t start_phys, phys_addr_t size
        start_bad = 0;
        last_bad = 0;
 
+       VM_WARN_ON_ONCE(size < start_phys_aligned - start_phys);
+
        for (p = start; p < end; p++)
                WRITE_ONCE(*p, pattern);