Re: [PATCH 2/5] [RESEND] x86: avoid unneeded __div64_32 function definition

From: Maciej W. Rozycki
Date: Mon Aug 07 2023 - 16:37:06 EST


On Wed, 2 Aug 2023, Borislav Petkov wrote:

> > --- a/arch/x86/include/asm/div64.h
> > +++ b/arch/x86/include/asm/div64.h
> > @@ -71,6 +71,11 @@ static inline u64 mul_u32_u32(u32 a, u32 b)
> > }
> > #define mul_u32_u32 mul_u32_u32
> >
> > +/*
> > + * __div64_32() is never called on x86, so prevent the
> > + * generic definition from getting built.
> > + */
> > +#define __div64_32
> >
> > #else
> > # include <asm-generic/div64.h>
>
> Yap.

Hmm, shouldn't this be something like:

#define __div64_32(n, base) BUILD_BUG()

instead?

Otherwise you risk `__div64_32(n, base)' getting expanded to `(n, base)',
if the macro does get called mistakenly for some reason, and the expansion
is a valid expression which may not produce a warning even, depending on
usage.

Maciej