On Wed, Mar 05, 2025 at 10:00:16PM +0900, Vincent Mailhol via B4 Relay wrote: > From: Lucas De Marchi <lucas.demarchi@xxxxxxxxx> > > Implement fixed-type BIT to help drivers add stricter checks, like was Here and in the Subject I would use BIT_Uxx(). > done for GENMASK(). ... > +/* > + * Fixed-type variants of BIT(), with additional checks like GENMASK_t(). The GENMASK_t() is not a well named macro. > + * following examples generate compiler warnings due to shift-count-overflow: > + * > + * - BIT_U8(8) > + * - BIT_U32(-1) > + * - BIT_U32(40) > + */ > +#define BIT_INPUT_CHECK(type, b) \ > + BUILD_BUG_ON_ZERO(const_true((b) >= BITS_PER_TYPE(type))) > + > +#define BIT_U8(b) (BIT_INPUT_CHECK(u8, b) + (unsigned int)BIT(b)) > +#define BIT_U16(b) (BIT_INPUT_CHECK(u16, b) + (unsigned int)BIT(b)) Why not u8 and u16? This inconsistency needs to be well justified. > +#define BIT_U32(b) (BIT_INPUT_CHECK(u32, b) + (u32)BIT(b)) > +#define BIT_U64(b) (BIT_INPUT_CHECK(u64, b) + (u64)BIT_ULL(b)) Can you also use a TAB between the parentheses for better readability? E.g., #define BIT_U64(b)r (BIT_INPUT_CHECK(u64, b) + (u64)BIT_ULL(b)) -- With Best Regards, Andy Shevchenko