lib/bitmap.c: make the bits parameter of bitmap_remap unsigned
Also, rename bits to nbits. Both changes for consistency with other bitmap_* functions. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
f6a1f5db8d
Коммит
9814ec135d
|
@ -160,7 +160,7 @@ extern int bitmap_parselist(const char *buf, unsigned long *maskp,
|
|||
extern int bitmap_parselist_user(const char __user *ubuf, unsigned int ulen,
|
||||
unsigned long *dst, int nbits);
|
||||
extern void bitmap_remap(unsigned long *dst, const unsigned long *src,
|
||||
const unsigned long *old, const unsigned long *new, int bits);
|
||||
const unsigned long *old, const unsigned long *new, unsigned int nbits);
|
||||
extern int bitmap_bitremap(int oldbit,
|
||||
const unsigned long *old, const unsigned long *new, int bits);
|
||||
extern void bitmap_onto(unsigned long *dst, const unsigned long *orig,
|
||||
|
|
16
lib/bitmap.c
16
lib/bitmap.c
|
@ -803,7 +803,7 @@ unsigned int bitmap_ord_to_pos(const unsigned long *buf, unsigned int ord, unsig
|
|||
* @src: subset to be remapped
|
||||
* @old: defines domain of map
|
||||
* @new: defines range of map
|
||||
* @bits: number of bits in each of these bitmaps
|
||||
* @nbits: number of bits in each of these bitmaps
|
||||
*
|
||||
* Let @old and @new define a mapping of bit positions, such that
|
||||
* whatever position is held by the n-th set bit in @old is mapped
|
||||
|
@ -831,22 +831,22 @@ unsigned int bitmap_ord_to_pos(const unsigned long *buf, unsigned int ord, unsig
|
|||
*/
|
||||
void bitmap_remap(unsigned long *dst, const unsigned long *src,
|
||||
const unsigned long *old, const unsigned long *new,
|
||||
int bits)
|
||||
unsigned int nbits)
|
||||
{
|
||||
int oldbit, w;
|
||||
unsigned int oldbit, w;
|
||||
|
||||
if (dst == src) /* following doesn't handle inplace remaps */
|
||||
return;
|
||||
bitmap_zero(dst, bits);
|
||||
bitmap_zero(dst, nbits);
|
||||
|
||||
w = bitmap_weight(new, bits);
|
||||
for_each_set_bit(oldbit, src, bits) {
|
||||
int n = bitmap_pos_to_ord(old, oldbit, bits);
|
||||
w = bitmap_weight(new, nbits);
|
||||
for_each_set_bit(oldbit, src, nbits) {
|
||||
int n = bitmap_pos_to_ord(old, oldbit, nbits);
|
||||
|
||||
if (n < 0 || w == 0)
|
||||
set_bit(oldbit, dst); /* identity map */
|
||||
else
|
||||
set_bit(bitmap_ord_to_pos(new, n % w, bits), dst);
|
||||
set_bit(bitmap_ord_to_pos(new, n % w, nbits), dst);
|
||||
}
|
||||
}
|
||||
EXPORT_SYMBOL(bitmap_remap);
|
||||
|
|
Загрузка…
Ссылка в новой задаче