Re: [PATCH] include: Fix compile warning in include/linux/bitops.h
From: NamJae Jeon <hidden>
Date: 2011-08-24 15:29:57
Also in:
lkml
Hi. Arnd. I send a patch by the below your request. Would you plz confirm it ? Thanks. 2011/8/25 Namjae Jeon [off-list ref]:
quoted hunk ↗ jump to hunk
The compile warning is caused by __const_hweight8 when using hweight_long with -Wsign-compare option. The reason is that the default return value of this macro is signed. So need type casting to remove warning. Signed-off-by: Namjae Jeon <redacted> --- include/asm-generic/bitops/const_hweight.h | 18 +++++++++--------- 1 files changed, 9 insertions(+), 9 deletions(-)diff --git a/include/asm-generic/bitops/const_hweight.h b/include/asm-generic/bitops/const_hweight.h index fa2a50b..31b7fce 100644 --- a/include/asm-generic/bitops/const_hweight.h +++ b/include/asm-generic/bitops/const_hweight.h@@ -4,15 +4,15 @@/* * Compile time versions of __arch_hweightN() */ -#define __const_hweight8(w) \ - ( (!!((w) & (1ULL << 0))) + \ - (!!((w) & (1ULL << 1))) + \ - (!!((w) & (1ULL << 2))) + \ - (!!((w) & (1ULL << 3))) + \ - (!!((w) & (1ULL << 4))) + \ - (!!((w) & (1ULL << 5))) + \ - (!!((w) & (1ULL << 6))) + \ - (!!((w) & (1ULL << 7))) ) +#define __const_hweight8(w) (unsigned long) \ + ( (!!((w) & (1ULL << 0))) + \ + (!!((w) & (1ULL << 1))) + \ + (!!((w) & (1ULL << 2))) + \ + (!!((w) & (1ULL << 3))) + \ + (!!((w) & (1ULL << 4))) + \ + (!!((w) & (1ULL << 5))) + \ + (!!((w) & (1ULL << 6))) + \ + (!!((w) & (1ULL << 7))) ) #define __const_hweight16(w) (__const_hweight8(w) + __const_hweight8((w) >> 8 )) #define __const_hweight32(w) (__const_hweight16(w) + __const_hweight16((w) >> 16)) -- 1.7.4.4
Yes, this looks correct to me. Could you send the change as a proper patch
with your Signed-off-by:?
Arnd