On Sun, May 13, 2018 at 5:02 PM, Boris Brezillon <boris.brezil...@bootlin.com> 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.
> -#define ndelay(n) __delay(DIV_ROUND_UP((n) * ((((HZSCALE) >> 11) * > (loops_per_jiffy >> 11)) >> 6), 1000)) > +static inline void ndelay(unsigned long nsec) > +{ > + __delay(DIV_ROUND_UP(nsec * > + ((((HZSCALE) >> 11) * One pair of parens is redundant. > + (loops_per_jiffy >> 11)) >> 6), > + 1000)); Can't you keep as one line as in original? > +} > +#define ndelay(n) ndelay(n) > > #endif /* defined(_M68K_DELAY_H) */ > -- > 2.14.1 > -- With Best Regards, Andy Shevchenko -- To unsubscribe from this list: send the line "unsubscribe linux-m68k" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html