Re: [PATCH] drm/i915: Explicitly cast divisor to fix Coccinelle warning

From: Ville Syrjälä
Date: Wed Jul 10 2024 - 07:38:53 EST


On Wed, Jul 10, 2024 at 09:46:51AM +0200, Thorsten Blum wrote:
> As the comment explains, the if check ensures that the divisor oa_period
> is a u32. Explicitly cast oa_period to u32 to remove the following
> Coccinelle/coccicheck warning reported by do_div.cocci:
>
> WARNING: do_div() does a 64-by-32 division, please consider using div64_u64 instead
>
> Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxxx>
> ---
> drivers/gpu/drm/i915/i915_perf.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/i915_perf.c b/drivers/gpu/drm/i915/i915_perf.c
> index 0b1cd4c7a525..24722e758aaf 100644
> --- a/drivers/gpu/drm/i915/i915_perf.c
> +++ b/drivers/gpu/drm/i915/i915_perf.c
> @@ -4103,7 +4103,7 @@ static int read_properties_unlocked(struct i915_perf *perf,
> */
> if (oa_period <= NSEC_PER_SEC) {
> u64 tmp = NSEC_PER_SEC;
> - do_div(tmp, oa_period);
> + do_div(tmp, (u32)oa_period);

Why is this code even using do_div() when it doesn't need the
remainder?

> oa_freq_hz = tmp;
> } else
> oa_freq_hz = 0;
> --
> 2.45.2

--
Ville Syrjälä
Intel