mirror-linux/lib/math
Nicolas Pitre e795000e75 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>
2025-07-09 22:57:53 -07:00
..
tests lib/prime_numbers: convert self-test to KUnit 2025-02-12 14:00:11 -08:00
Kconfig math: make RATIONAL tristate 2021-09-08 11:50:26 -07:00
Makefile lib: math: Move KUnit tests into tests/ subdir 2025-02-10 18:24:57 -08:00
cordic.c
div64.c mul_u64_u64_div_u64: fix the division-by-zero behavior 2025-07-09 22:57:53 -07:00
gcd.c
int_log.c lib/math/int_log: Replace LGPL-2.1-or-later boilerplate with SPDX identifier 2023-07-09 22:47:50 +01:00
int_pow.c
int_sqrt.c
lcm.c
prime_numbers.c lib/prime_numbers: convert self-test to KUnit 2025-02-12 14:00:11 -08:00
prime_numbers_private.h lib/prime_numbers: convert self-test to KUnit 2025-02-12 14:00:11 -08:00
rational.c math: rational: add missing MODULE_DESCRIPTION() macro 2024-07-04 23:43:11 -07:00
reciprocal_div.c
test_div64.c lib/math/test_div64: add some edge cases relevant to __div64_const32() 2024-10-28 21:44:28 +00:00
test_mul_u64_u64_div_u64.c mul_u64_u64_div_u64: basic sanity test 2024-09-01 20:43:22 -07:00