On Tue, Jun 24, 2014 at 01:31:25PM -0400, Vivek Goyal wrote: > I think problem is that we shift 1 by 32 bits in this case (31 - 0 + > 1) and that overflows the size of unsigned. So there is this corner > case where it does not seem to work (or atleast outputs warning). Right, that is a corner case which overflows the shift. The only thing I can think of right now is: #define GENMASK(h, l) ((u32)GENMASK_ULL(h, l)) u32 because we're implicitly assuming we're dealing with 32-bit unsigned quantities. There might be a better solution though... -- Regards/Gruss, Boris. Sent from a fat crate under my desk. Formatting is fine. --