Re: [PATCH] m68k: Implement ndelay() as an inline function to force type checking/casting

From: Miquel Raynal
Date: Mon May 14 2018 - 03:23:54 EST


Hi Boris,

On Sun, 13 May 2018 16:02:12 +0200, Boris Brezillon
<boris.brezillon@xxxxxxxxxxx> wrote:

> ndelay() is supposed to take an unsigned long, but if you define
> ndelay() as a macro and the caller pass an unsigned long long instead
> of an unsigned long, the unsigned long long to unsigned long cast is
> not done and we end up with an "undefined reference to `__udivdi3'"
> error at link time.
>
> Fix that by making ndelay() an inline function and then defining dummy
> ndelay() macro that redirects to the ndelay() function (it's how most
> archs do to implement ndelay()).
>
> Fixes: c8ee038bd148 ("m68k: Implement ndelay() based on the existing udelay() logic")
> Signed-off-by: Boris Brezillon <boris.brezillon@xxxxxxxxxxx>

Thanks for fixing it.

Reviewed-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>


--
Miquel Raynal, Bootlin (formerly Free Electrons)
Embedded Linux and Kernel engineering
https://bootlin.com