RE: [PATCH] pwm: use div64_u64() instead of do_div()

From: David Laight
Date: Thu Feb 10 2022 - 04:49:01 EST


From: Uwe Kleine-König
> Sent: 09 February 2022 15:26
...
> > - do_div(cycles, period_ns);
> > + div64_u64(cycles, period_ns);
>
> This is wrong, div64_u64() has a different calling convention than do_div().
>
> The issue however is real. Please add

Not really although I can't see a check I'd assume that period_ns
is expected to be much less than a second - so well under 32 bits
There is certainly a general expectation that multiplying by
other 'largish' values won't exceed 64 bits.

Plausible the pwm 'period' should actually be a u32.
But then care would be needed to ensure the multiplies have
64bit results.

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)