@@ -612,10 +612,9 @@ static int __devinit vmu_connect(struct maple_device *mdev)
test_flash_data = be32_to_cpu(mdev->devinfo.function);
/* Need to count how many bits are set - to find out which
- * function_data element has details of the memory card:
- * using Brian Kernighan's/Peter Wegner's method */
- for (c = 0; test_flash_data; c++)
- test_flash_data &= test_flash_data - 1;
+ * function_data element has details of the memory card
+ */
+ c = hweight_long(test_flash_data);
basic_flash_data = be32_to_cpu(mdev->devinfo.function_data[c - 1]);
Use hweight_long instead of Brian Kernighan's/Peter Wegner's method Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com> Cc: David Woodhouse <dwmw2@infradead.org> Cc: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Cc: linux-mtd@lists.infradead.org Cc: Paul Mundt <lethal@linux-sh.org> Cc: Adrian McMenamin <adrian@mcmen.demon.co.uk> --- drivers/mtd/maps/vmu-flash.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-)