diff options
Diffstat (limited to 'drivers/mtd/maps/vmu-flash.c')
-rw-r--r-- | drivers/mtd/maps/vmu-flash.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/drivers/mtd/maps/vmu-flash.c b/drivers/mtd/maps/vmu-flash.c index 1f73297e7776..82afad0ddd72 100644 --- a/drivers/mtd/maps/vmu-flash.c +++ b/drivers/mtd/maps/vmu-flash.c | |||
@@ -612,16 +612,15 @@ static int __devinit vmu_connect(struct maple_device *mdev) | |||
612 | 612 | ||
613 | test_flash_data = be32_to_cpu(mdev->devinfo.function); | 613 | test_flash_data = be32_to_cpu(mdev->devinfo.function); |
614 | /* Need to count how many bits are set - to find out which | 614 | /* Need to count how many bits are set - to find out which |
615 | * function_data element has details of the memory card: | 615 | * function_data element has details of the memory card |
616 | * using Brian Kernighan's/Peter Wegner's method */ | 616 | */ |
617 | for (c = 0; test_flash_data; c++) | 617 | c = hweight_long(test_flash_data); |
618 | test_flash_data &= test_flash_data - 1; | ||
619 | 618 | ||
620 | basic_flash_data = be32_to_cpu(mdev->devinfo.function_data[c - 1]); | 619 | basic_flash_data = be32_to_cpu(mdev->devinfo.function_data[c - 1]); |
621 | 620 | ||
622 | card = kmalloc(sizeof(struct memcard), GFP_KERNEL); | 621 | card = kmalloc(sizeof(struct memcard), GFP_KERNEL); |
623 | if (!card) { | 622 | if (!card) { |
624 | error = ENOMEM; | 623 | error = -ENOMEM; |
625 | goto fail_nomem; | 624 | goto fail_nomem; |
626 | } | 625 | } |
627 | 626 | ||