diff options
Diffstat (limited to 'include/linux/kernel.h')
-rw-r--r-- | include/linux/kernel.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index d140e8fb075f..c566927efcbd 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h | |||
@@ -77,13 +77,15 @@ | |||
77 | 77 | ||
78 | /* | 78 | /* |
79 | * Divide positive or negative dividend by positive divisor and round | 79 | * Divide positive or negative dividend by positive divisor and round |
80 | * to closest integer. Result is undefined for negative divisors. | 80 | * to closest integer. Result is undefined for negative divisors and |
81 | * for negative dividends if the divisor variable type is unsigned. | ||
81 | */ | 82 | */ |
82 | #define DIV_ROUND_CLOSEST(x, divisor)( \ | 83 | #define DIV_ROUND_CLOSEST(x, divisor)( \ |
83 | { \ | 84 | { \ |
84 | typeof(x) __x = x; \ | 85 | typeof(x) __x = x; \ |
85 | typeof(divisor) __d = divisor; \ | 86 | typeof(divisor) __d = divisor; \ |
86 | (((typeof(x))-1) > 0 || (__x) > 0) ? \ | 87 | (((typeof(x))-1) > 0 || \ |
88 | ((typeof(divisor))-1) > 0 || (__x) > 0) ? \ | ||
87 | (((__x) + ((__d) / 2)) / (__d)) : \ | 89 | (((__x) + ((__d) / 2)) / (__d)) : \ |
88 | (((__x) - ((__d) / 2)) / (__d)); \ | 90 | (((__x) - ((__d) / 2)) / (__d)); \ |
89 | } \ | 91 | } \ |