[PATCH 1/3] sparc: clear bitmap correctly in bit_map_init()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



In bit_map_init(), it attempts to clear all bits in the bitmap by memset(),
but if the size of bitmap is not a multiple of the sizeof(long), it can't
clear the trailing edge of bitmap properly on big-endian architecture.
So it should use bitmap_clear() instead of memset().

There are only two users of bit_map_init(), and both of them don't cause
the issue described above.  But it would be better to fix it now for
future changes.

Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx>
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
Cc: sparclinux@xxxxxxxxxxxxxxx
---
 arch/sparc/lib/bitext.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/arch/sparc/lib/bitext.c b/arch/sparc/lib/bitext.c
index d516fda..04d8bad 100644
--- a/arch/sparc/lib/bitext.c
+++ b/arch/sparc/lib/bitext.c
@@ -111,11 +111,7 @@ void bit_map_clear(struct bit_map *t, int offset, int len)
 
 void bit_map_init(struct bit_map *t, unsigned long *map, int size)
 {
-
-	if ((size & 07) != 0)
-		BUG();
-	memset(map, 0, size>>3);
-
+	bitmap_zero(map, size);
 	memset(t, 0, sizeof *t);
 	spin_lock_init(&t->lock);
 	t->map = map;
-- 
1.8.1.4

--
To unsubscribe from this list: send the line "unsubscribe sparclinux" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Kernel Development]     [DCCP]     [Linux ARM Development]     [Linux]     [Photo]     [Yosemite Help]     [Linux ARM Kernel]     [Linux SCSI]     [Linux x86_64]     [Linux Hams]

  Powered by Linux