Messages in this thread Patch in this message |  | | From | Joshua Crofts <> | | Subject | [PATCH] iio: frequency: ad983x: replace do_div() with div64_ul(). | | Date | Thu, 9 Apr 2026 13:18:23 +0000 |
| |
Coccinelle reported the following in both ad983x drivers: do_div() does a 64-by-32 division, please consider using div64_ul instead.
Fix this by replacing do_div() with div64_ul(), which safely handles 64-bit dividends and unsigned long divisors across all architectures.
Signed-off-by: Joshua Crofts <joshua.crofts1@gmail.com> --- drivers/staging/iio/frequency/ad9832.c | 3 ++- drivers/staging/iio/frequency/ad9834.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/staging/iio/frequency/ad9832.c b/drivers/staging/iio/frequency/ad9832.c index b87ea1781b..61ee93263a 100644 --- a/drivers/staging/iio/frequency/ad9832.c +++ b/drivers/staging/iio/frequency/ad9832.c @@ -13,6 +13,7 @@ #include <linux/device.h> #include <linux/err.h> #include <linux/kernel.h> +#include <linux/math64.h> #include <linux/module.h> #include <linux/regulator/consumer.h> #include <linux/slab.h> @@ -115,7 +116,7 @@ static unsigned long ad9832_calc_freqreg(unsigned long mclk, unsigned long fout) { unsigned long long freqreg = (u64)fout * (u64)((u64)1L << AD9832_FREQ_BITS); - do_div(freqreg, mclk); + freqreg = div64_ul(freqreg, mclk); return freqreg; } diff --git a/drivers/staging/iio/frequency/ad9834.c b/drivers/staging/iio/frequency/ad9834.c index d339d5e8e0..83d0e1360c 100644 --- a/drivers/staging/iio/frequency/ad9834.c +++ b/drivers/staging/iio/frequency/ad9834.c @@ -10,6 +10,7 @@ #include <linux/workqueue.h> #include <linux/device.h> #include <linux/kernel.h> +#include <linux/math64.h> #include <linux/slab.h> #include <linux/sysfs.h> #include <linux/list.h> @@ -101,7 +102,7 @@ static unsigned int ad9834_calc_freqreg(unsigned long mclk, unsigned long fout) { unsigned long long freqreg = (u64)fout * (u64)BIT(AD9834_FREQ_BITS); - do_div(freqreg, mclk); + freqreg = div64_ul(freqreg, mclk); return freqreg; } -- 2.47.3
|  |