On 15/5/2023 12:24 pm, Herbert Xu wrote: > On Mon, May 15, 2023 at 11:27:35AM +0800, Jia Jie Ho wrote: >> >> I've added COMPILE_TEST in the Kconfig, then ran make W=1, sparse and smatch. >> However it did not produce the error message. > > I guess you weren't testing on a 64-bit platform. BIT(2) is > an unsigned long, so ~BIT(2) is 64-bit long on 64-bit platforms. > I am cross-compiling on a 64-bit platform. I'll check my compiler settings again in case this masks errors in future patches. > You're trying to feed it into writel which takes a 32-bit value, > hence the warning. > > If you have to use the BIT macro, then you need to cast the result > to u32: > > #define STARFIVE_IE_MASK_HASH_DONE ((u32)BIT(2)) > > But it's probably a lot clearer if you do it as: > > #define STARFIVE_IE_MASK_HASH_DONE 0x4 Sure, I'll do this for the next version. Thanks, Jia Jie