From: Akinobu Mita By defining generic hweight*() routines - hweight64() will be defined on all architectures - hweight_long() will use architecture optimized hweight32() or hweight64() I found two possible cleanups by these reasons. Signed-off-by: Akinobu Mita Signed-off-by: Andrew Morton --- drivers/ieee1394/highlevel.c | 3 +-- lib/bitmap.c | 19 ++----------------- 2 files changed, 3 insertions(+), 19 deletions(-) diff -puN drivers/ieee1394/highlevel.c~bitops-hweight-related-cleanup drivers/ieee1394/highlevel.c --- devel/drivers/ieee1394/highlevel.c~bitops-hweight-related-cleanup 2006-02-20 21:02:51.000000000 -0800 +++ devel-akpm/drivers/ieee1394/highlevel.c 2006-02-20 21:02:51.000000000 -0800 @@ -306,8 +306,7 @@ u64 hpsb_allocate_and_register_addrspace u64 align_mask = ~(alignment - 1); if ((alignment & 3) || (alignment > 0x800000000000ULL) || - ((hweight32(alignment >> 32) + - hweight32(alignment & 0xffffffff) != 1))) { + (hweight64(alignment) != 1)) { HPSB_ERR("%s called with invalid alignment: 0x%048llx", __FUNCTION__, (unsigned long long)alignment); return retval; diff -puN lib/bitmap.c~bitops-hweight-related-cleanup lib/bitmap.c --- devel/lib/bitmap.c~bitops-hweight-related-cleanup 2006-02-20 21:02:51.000000000 -0800 +++ devel-akpm/lib/bitmap.c 2006-02-20 21:02:51.000000000 -0800 @@ -253,33 +253,18 @@ int __bitmap_subset(const unsigned long } EXPORT_SYMBOL(__bitmap_subset); -#if BITS_PER_LONG == 32 int __bitmap_weight(const unsigned long *bitmap, int bits) { int k, w = 0, lim = bits/BITS_PER_LONG; for (k = 0; k < lim; k++) - w += hweight32(bitmap[k]); + w += hweight_long(bitmap[k]); if (bits % BITS_PER_LONG) - w += hweight32(bitmap[k] & BITMAP_LAST_WORD_MASK(bits)); + w += hweight_long(bitmap[k] & BITMAP_LAST_WORD_MASK(bits)); return w; } -#else -int __bitmap_weight(const unsigned long *bitmap, int bits) -{ - int k, w = 0, lim = bits/BITS_PER_LONG; - - for (k = 0; k < lim; k++) - w += hweight64(bitmap[k]); - - if (bits % BITS_PER_LONG) - w += hweight64(bitmap[k] & BITMAP_LAST_WORD_MASK(bits)); - - return w; -} -#endif EXPORT_SYMBOL(__bitmap_weight); /* _