Commit 445df54f authored by Boaz Harrosh's avatar Boaz Harrosh Committed by John W. Linville

rt2x00: Compiler warning unmasked by fix of BUILD_BUG_ON

A "Set" to a sign-bit in an "&" operation causes a compiler warning.
Make calculations unsigned.

[ The warning was masked by the old definition of BUILD_BUG_ON() ]

Also remove __builtin_constant_p from FIELD_CHECK since BUILD_BUG_ON
no longer permits non-const values.
Signed-off-by: default avatarBoaz Harrosh <bharrosh@panasas.com>
CC: Ingo Molnar <mingo@elte.hu>
CC: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: default avatarIvo van Doorn <IvDoorn@gmail.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 2b58b209
...@@ -136,7 +136,7 @@ struct rt2x00_field32 { ...@@ -136,7 +136,7 @@ struct rt2x00_field32 {
*/ */
#define is_power_of_two(x) ( !((x) & ((x)-1)) ) #define is_power_of_two(x) ( !((x) & ((x)-1)) )
#define low_bit_mask(x) ( ((x)-1) & ~(x) ) #define low_bit_mask(x) ( ((x)-1) & ~(x) )
#define is_valid_mask(x) is_power_of_two(1 + (x) + low_bit_mask(x)) #define is_valid_mask(x) is_power_of_two(1LU + (x) + low_bit_mask(x))
/* /*
* Macro's to find first set bit in a variable. * Macro's to find first set bit in a variable.
...@@ -173,8 +173,7 @@ struct rt2x00_field32 { ...@@ -173,8 +173,7 @@ struct rt2x00_field32 {
* does not exceed the given typelimit. * does not exceed the given typelimit.
*/ */
#define FIELD_CHECK(__mask, __type) \ #define FIELD_CHECK(__mask, __type) \
BUILD_BUG_ON(!__builtin_constant_p(__mask) || \ BUILD_BUG_ON(!(__mask) || \
!(__mask) || \
!is_valid_mask(__mask) || \ !is_valid_mask(__mask) || \
(__mask) != (__type)(__mask)) \ (__mask) != (__type)(__mask)) \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment