]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
mul_u64_u64_div_u64: fix the division-by-zero behavior
authorNicolas Pitre <npitre@baylibre.com>
Mon, 16 Jun 2025 19:22:44 +0000 (15:22 -0400)
committerAndrew Morton <akpm@linux-foundation.org>
Thu, 10 Jul 2025 05:57:53 +0000 (22:57 -0700)
commite795000e755c309d1f9bd2a0590eca38b4625f3a
tree3336ca4b7cd87b4d1843a8d044e9528ad0deee8b
parentd71b90e5ba83b32b4e3980f8c07ba2012ad9378a
mul_u64_u64_div_u64: fix the division-by-zero behavior

The current implementation forces a compile-time 1/0 division, which
generates an undefined instruction (ud2 on x86) rather than a proper
runtime division-by-zero exception.

Change to trigger an actual div-by-0 exception at runtime, consistent with
other division operations.  Use a non-1 dividend to prevent the compiler
from optimizing the division into a comparison.

Link: https://lkml.kernel.org/r/q246p466-1453-qon9-29so-37105116009q@onlyvoer.pbz
Signed-off-by: Nicolas Pitre <npitre@baylibre.com>
Cc: Biju Das <biju.das.jz@bp.renesas.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Weißschuh <linux@weissschuh.net>
Cc: Uwe Kleine-König <u.kleine-koenig@baylibre.com>
Cc: David Laight <david.laight.linux@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lib/math/div64.c