diff options
| author | Dave Jones <davej@redhat.com> | 2006-06-29 16:01:54 -0400 |
|---|---|---|
| committer | Dave Jones <davej@redhat.com> | 2006-06-29 16:01:54 -0400 |
| commit | 55b4d6a52195a8f277ffddf755ddaff359878f41 (patch) | |
| tree | 06a3183a562f8da4688f65023f7a18dcad702956 /include/linux/bitmap.h | |
| parent | adf8a287150667feb5747f8beade62acacc17d4e (diff) | |
| parent | 1f1332f727c3229eb2166a83fec5d3de6a73dce2 (diff) | |
Merge ../linus
Conflicts:
drivers/char/agp/Kconfig
Diffstat (limited to 'include/linux/bitmap.h')
| -rw-r--r-- | include/linux/bitmap.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h index d9ed27969855..dcc5de7cc487 100644 --- a/include/linux/bitmap.h +++ b/include/linux/bitmap.h @@ -24,6 +24,9 @@ * The available bitmap operations and their rough meaning in the * case that the bitmap is a single unsigned long are thus: * + * Note that nbits should be always a compile time evaluable constant. + * Otherwise many inlines will generate horrible code. + * * bitmap_zero(dst, nbits) *dst = 0UL * bitmap_fill(dst, nbits) *dst = ~0UL * bitmap_copy(dst, src, nbits) *dst = *src @@ -244,6 +247,8 @@ static inline int bitmap_full(const unsigned long *src, int nbits) static inline int bitmap_weight(const unsigned long *src, int nbits) { + if (nbits <= BITS_PER_LONG) + return hweight_long(*src & BITMAP_LAST_WORD_MASK(nbits)); return __bitmap_weight(src, nbits); } |
