mul_u64_u64_div_u64: increase precision by conditionally swapping a and b
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Sun, 3 Mar 2024 09:24:09 +0000 (10:24 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Tue, 12 Mar 2024 20:09:22 +0000 (13:09 -0700)
commit8c86fb68ffcb0d8a5418e171c8d359d712912e9b
tree5d19b4a82cc54d1c036f9f855691fa7946bb56ca
parent4bb7be96fc8871f37ff705e02443a0526fb4df8d
mul_u64_u64_div_u64: increase precision by conditionally swapping a and b

As indicated in the added comment, the algorithm works better if b is big.
As multiplication is commutative, a and b can be swapped.  Do this if a
is bigger than b.

Link: https://lkml.kernel.org/r/20240303092408.662449-2-u.kleine-koenig@pengutronix.de
Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Tested-by: Biju Das <biju.das.jz@bp.renesas.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
lib/math/div64.c