Message ID | 20101119150411.81092e94.akpm@linux-foundation.org (mailing list archive) |
---|---|
State | Not Applicable |
Headers | show |
--- a/include/linux/kernel.h~include-linux-kernelh-abs-fix-handling-of-32-bit-unsigneds-on-64-bit-fix +++ a/include/linux/kernel.h @@ -143,6 +143,13 @@ extern int _cond_resched(void); #define might_sleep_if(cond) do { if (cond) might_sleep(); } while (0) +/* + * abs() handles unsigned and signed longs, ints, shorts and chars. For long + * types it returns a signed long. For int, short and char types it returns a + * signed int. + * abs() should not be used for 64-bit types (s64, u64, long long) - use abs64() + * for those. + */ #define abs(x) ({ \ long ret; \ if (sizeof(x) == sizeof(long)) { \