diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-09 15:49:50 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-09 15:49:50 -0500 |
| commit | c4295fbb6048d85f0b41c5ced5cbf63f6811c46c (patch) | |
| tree | 948857a7a45bbe5cd4bd654d4523ddda26cd3144 | |
| parent | e245b80c8357bf375f15c5f3b05ef8ae35e4fbc8 (diff) | |
x86: make 'constant_test_bit()' take an unsigned bit number
Ingo noticed that using signed arithmetic seems to confuse the gcc
inliner, and make it potentially decide that it's all too complicated.
(Yeah, yeah, it's a constant. It's always positive. Still..)
Based-on: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
| -rw-r--r-- | arch/x86/include/asm/bitops.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h index 9fa9dcdf344b..e02a359d2aa5 100644 --- a/arch/x86/include/asm/bitops.h +++ b/arch/x86/include/asm/bitops.h | |||
| @@ -300,7 +300,7 @@ static inline int test_and_change_bit(int nr, volatile unsigned long *addr) | |||
| 300 | return oldbit; | 300 | return oldbit; |
| 301 | } | 301 | } |
| 302 | 302 | ||
| 303 | static inline int constant_test_bit(int nr, const volatile unsigned long *addr) | 303 | static inline int constant_test_bit(unsigned int nr, const volatile unsigned long *addr) |
| 304 | { | 304 | { |
| 305 | return ((1UL << (nr % BITS_PER_LONG)) & | 305 | return ((1UL << (nr % BITS_PER_LONG)) & |
| 306 | (((unsigned long *)addr)[nr / BITS_PER_LONG])) != 0; | 306 | (((unsigned long *)addr)[nr / BITS_PER_LONG])) != 0; |
