struct cfi_private cfi;
        struct cfi_private *retcfi;
        unsigned long *chip_map;
-       int i, j, mapsize;
        int max_chips;
+       int i, j;
 
        memset(&cfi, 0, sizeof(cfi));
 
                max_chips = 1;
        }
 
-       mapsize = sizeof(long) * DIV_ROUND_UP(max_chips, BITS_PER_LONG);
-       chip_map = kzalloc(mapsize, GFP_KERNEL);
+       chip_map = bitmap_zalloc(max_chips, GFP_KERNEL);
        if (!chip_map) {
                kfree(cfi.cfiq);
                return NULL;
 
        if (!retcfi) {
                kfree(cfi.cfiq);
-               kfree(chip_map);
+               bitmap_free(chip_map);
                return NULL;
        }
 
                }
        }
 
-       kfree(chip_map);
+       bitmap_free(chip_map);
        return retcfi;
 }