Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mtd: maps: Remove BUS_ID_SIZE from integrator_flash

Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
Tested-by: Catalin Marinas <catalin.marinas@arm.com>

+14 -8
+14 -8
drivers/mtd/maps/integrator-flash.c
··· 42 42 #include <mach/hardware.h> 43 43 #include <asm/system.h> 44 44 45 - #define SUBDEV_NAME_SIZE (BUS_ID_SIZE + 2) 46 - 47 45 struct armflash_subdev_info { 48 - char name[SUBDEV_NAME_SIZE]; 46 + char *name; 49 47 struct mtd_info *mtd; 50 48 struct map_info map; 51 49 struct flash_platform_data *plat; ··· 132 134 map_destroy(subdev->mtd); 133 135 if (subdev->map.virt) 134 136 iounmap(subdev->map.virt); 137 + kfree(subdev->name); 138 + subdev->name = NULL; 135 139 release_mem_region(subdev->map.phys, subdev->map.size); 136 140 } 137 141 ··· 177 177 178 178 if (nr == 1) 179 179 /* No MTD concatenation, just use the default name */ 180 - snprintf(subdev->name, SUBDEV_NAME_SIZE, "%s", 181 - dev_name(&dev->dev)); 180 + subdev->name = kstrdup(dev_name(&dev->dev), GFP_KERNEL); 182 181 else 183 - snprintf(subdev->name, SUBDEV_NAME_SIZE, "%s-%d", 184 - dev_name(&dev->dev), i); 182 + subdev->name = kasprintf(GFP_KERNEL, "%s-%d", 183 + dev_name(&dev->dev), i); 184 + if (!subdev->name) { 185 + err = -ENOMEM; 186 + break; 187 + } 185 188 subdev->plat = plat; 186 189 187 190 err = armflash_subdev_probe(subdev, res); 188 - if (err) 191 + if (err) { 192 + kfree(subdev->name); 193 + subdev->name = NULL; 189 194 break; 195 + } 190 196 } 191 197 info->nr_subdev = i; 192 198