Created
November 20, 2018 16:00
-
-
Save byte-sourcerer/01b99a728f0cbb75ef0ffff7b29e6f20 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/include/linux/log2.h b/include/linux/log2.h | |
index ef3d4f67118c..c373295f359f 100644 | |
--- a/include/linux/log2.h | |
+++ b/include/linux/log2.h | |
@@ -16,12 +16,6 @@ | |
#include <linux/bitops.h> | |
/* | |
- * deal with unrepresentable constant logarithms | |
- */ | |
-extern __attribute__((const, noreturn)) | |
-int ____ilog2_NaN(void); | |
- | |
-/* | |
* non-constant log of base 2 calculators | |
* - the arch may override these in asm/bitops.h if they can be implemented | |
* more efficiently than using fls() and fls64() | |
@@ -85,7 +79,7 @@ unsigned long __rounddown_pow_of_two(unsigned long n) | |
#define ilog2(n) \ | |
( \ | |
__builtin_constant_p(n) ? ( \ | |
- (n) < 1 ? ____ilog2_NaN() : \ | |
+ (n) < 2 ? 0 : \ | |
(n) & (1ULL << 63) ? 63 : \ | |
(n) & (1ULL << 62) ? 62 : \ | |
(n) & (1ULL << 61) ? 61 : \ | |
@@ -148,10 +142,7 @@ unsigned long __rounddown_pow_of_two(unsigned long n) | |
(n) & (1ULL << 4) ? 4 : \ | |
(n) & (1ULL << 3) ? 3 : \ | |
(n) & (1ULL << 2) ? 2 : \ | |
- (n) & (1ULL << 1) ? 1 : \ | |
- (n) & (1ULL << 0) ? 0 : \ | |
- ____ilog2_NaN() \ | |
- ) : \ | |
+ 1 ) : \ | |
(sizeof(n) <= 4) ? \ | |
__ilog2_u32(n) : \ | |
__ilog2_u64(n) \ | |
diff --git a/tools/include/linux/log2.h b/tools/include/linux/log2.h | |
index 41446668ccce..d5677d39c1e4 100644 | |
--- a/tools/include/linux/log2.h | |
+++ b/tools/include/linux/log2.h | |
@@ -13,12 +13,6 @@ | |
#define _TOOLS_LINUX_LOG2_H | |
/* | |
- * deal with unrepresentable constant logarithms | |
- */ | |
-extern __attribute__((const, noreturn)) | |
-int ____ilog2_NaN(void); | |
- | |
-/* | |
* non-constant log of base 2 calculators | |
* - the arch may override these in asm/bitops.h if they can be implemented | |
* more efficiently than using fls() and fls64() | |
@@ -78,7 +72,7 @@ unsigned long __rounddown_pow_of_two(unsigned long n) | |
#define ilog2(n) \ | |
( \ | |
__builtin_constant_p(n) ? ( \ | |
- (n) < 1 ? ____ilog2_NaN() : \ | |
+ (n) < 2 ? 0 : \ | |
(n) & (1ULL << 63) ? 63 : \ | |
(n) & (1ULL << 62) ? 62 : \ | |
(n) & (1ULL << 61) ? 61 : \ | |
@@ -141,10 +135,7 @@ unsigned long __rounddown_pow_of_two(unsigned long n) | |
(n) & (1ULL << 4) ? 4 : \ | |
(n) & (1ULL << 3) ? 3 : \ | |
(n) & (1ULL << 2) ? 2 : \ | |
- (n) & (1ULL << 1) ? 1 : \ | |
- (n) & (1ULL << 0) ? 0 : \ | |
- ____ilog2_NaN() \ | |
- ) : \ | |
+ 1 ) : \ | |
(sizeof(n) <= 4) ? \ | |
__ilog2_u32(n) : \ | |
__ilog2_u64(n) \ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment