X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2Fbitmap.c;h=06fb57c86de07007dad10f4bbeb3b1adcc0742c4;hb=5ed459102d1e914972d65dd4ea9f26073143a4e9;hp=c4cb48f77f0c6ab157ba41ec0411644a44a39ca9;hpb=0f1bce41fed02e45f31c2409f29e69e1fedebcdc;p=linux-2.6-omap-h63xx.git diff --git a/lib/bitmap.c b/lib/bitmap.c index c4cb48f77f0..06fb57c86de 100644 --- a/lib/bitmap.c +++ b/lib/bitmap.c @@ -317,19 +317,14 @@ EXPORT_SYMBOL(bitmap_scnprintf); /** * bitmap_scnprintf_len - return buffer length needed to convert - * bitmap to an ASCII hex string. - * @len: number of bits to be converted + * bitmap to an ASCII hex string + * @nr_bits: number of bits to be converted */ -int bitmap_scnprintf_len(unsigned int len) +int bitmap_scnprintf_len(unsigned int nr_bits) { - /* we need 9 chars per word for 32 bit words (8 hexdigits + sep/null) */ - int bitslen = ALIGN(len, CHUNKSZ); - int wordlen = CHUNKSZ / 4; - int buflen = (bitslen / wordlen) * (wordlen + 1) * sizeof(char); - - return buflen; + unsigned int nr_nibbles = ALIGN(nr_bits, 4) / 4; + return nr_nibbles + ALIGN(nr_nibbles, CHUNKSZ / 4) / (CHUNKSZ / 4) - 1; } -EXPORT_SYMBOL(bitmap_scnprintf_len); /** * __bitmap_parse - convert an ASCII hex string into a bitmap.