[PATCH v2 2/2] arch/riscv: Add bitrev.h file to support rev8 and brev8

Yury Norov ynorov at nvidia.com
Thu Apr 16 17:34:28 PDT 2026


On Thu, Apr 16, 2026 at 04:14:41PM -0700, Nathan Chancellor wrote:
> On Wed, Apr 15, 2026 at 05:38:27PM +0800, Jinjie Ruan wrote:
> > The RISC-V Bit-manipulation Extension for Cryptography (Zbkb) provides

...

> > +static __always_inline __attribute_const__ u32 __arch_bitrev32(u32 x)
> > +{
> > +	unsigned long result = x;
> > +
> > +	if (!riscv_has_extension_likely(RISCV_ISA_EXT_ZBKB))
> > +		return generic___bitrev32(x);
 
Hi Nathan,
 
> This breaks the build when CONFIG_HAVE_ARCH_BITREVERSE is set because
> generic___bitrev32() ultimately calls generic___bitrev8(), which uses
> byte_rev_table but that is only included in lib/bitrev.c when
> CONFIG_HAVE_ARCH_BITREVERSE is not set. How was this tested? This seems
> a pretty basic build problem that has showed up in a variety of
> configurations (at least all the configurations that our CI tests).
> 
>   $ make -skj"$(nproc)" ARCH=riscv CROSS_COMPILE=riscv64-linux- mrproper defconfig all
>   ERROR: modpost: "byte_rev_table" [lib/zlib_deflate/zlib_deflate.ko] undefined!
>   ERROR: modpost: "byte_rev_table" [drivers/net/ethernet/spacemit/k1_emac.ko] undefined!
>   ERROR: modpost: "byte_rev_table" [drivers/net/ethernet/stmicro/stmmac/stmmac.ko] undefined!
> 
>   https://github.com/ClangBuiltLinux/continuous-integration2/actions/runs/24529356842
>   https://lore.kernel.org/177635154368.6552.7060101263009785041@8692ffc4d55e/

> Yury, are you intending to send this series to Linus in the 7.1 merge
> window?

No, I'm already done with this merge window. This is the material for
the next one, if ever.

Just as said, I added this one for testing. I am so far have no feedback
from robots. But your report is enough to drop it.

> If not, it shouldn't be in -next at this point.

What for do we need -next, if not for early testing?

Thanks,
Yury



More information about the linux-riscv mailing list