Use kzalloc rather than the combination of kmalloc and memset.
The semantic patch that makes this change is as follows:
(http://coccinelle.lip6.fr/)
// <smpl>
@@
expression x,size,flags;
statement S;
@@
-x = kmalloc(size,flags);
+x = kzalloc(size,flags);
 if (x == NULL) S
-memset(x, 0, size);
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
 static int lpddr_chip_setup(struct map_info *map, struct lpddr_private *lpddr)
 {
 
-       lpddr->qinfo = kmalloc(sizeof(struct qinfo_chip), GFP_KERNEL);
+       lpddr->qinfo = kzalloc(sizeof(struct qinfo_chip), GFP_KERNEL);
        if (!lpddr->qinfo) {
                printk(KERN_WARNING "%s: no memory for LPDDR qinfo structure\n",
                                map->name);
                return 0;
        }
-       memset(lpddr->qinfo, 0, sizeof(struct qinfo_chip));
 
        /* Get the ManuID */
        lpddr->ManufactId = CMDVAL(map_read(map, map->pfow_base + PFOW_MANUFACTURER_ID));
        lpddr.numchips = 1;
 
        numvirtchips = lpddr.numchips * lpddr.qinfo->HWPartsNum;
-       retlpddr = kmalloc(sizeof(struct lpddr_private) +
+       retlpddr = kzalloc(sizeof(struct lpddr_private) +
                        numvirtchips * sizeof(struct flchip), GFP_KERNEL);
        if (!retlpddr)
                return NULL;
 
-       memset(retlpddr, 0, sizeof(struct lpddr_private) +
-                               numvirtchips * sizeof(struct flchip));
        memcpy(retlpddr, &lpddr, sizeof(struct lpddr_private));
 
        retlpddr->numchips = numvirtchips;
 
                return -EIO;
        }
 
-       info = kmalloc(sizeof(struct ixp2000_flash_info), GFP_KERNEL);
+       info = kzalloc(sizeof(struct ixp2000_flash_info), GFP_KERNEL);
        if(!info) {
                err = -ENOMEM;
                goto Error;
        }
-       memset(info, 0, sizeof(struct ixp2000_flash_info));
 
        platform_set_drvdata(dev, info);
 
 
                        return err;
        }
 
-       info = kmalloc(sizeof(struct ixp4xx_flash_info), GFP_KERNEL);
+       info = kzalloc(sizeof(struct ixp4xx_flash_info), GFP_KERNEL);
        if(!info) {
                err = -ENOMEM;
                goto Error;
        }
-       memset(info, 0, sizeof(struct ixp4xx_flash_info));
 
        platform_set_drvdata(dev, info);
 
 
        if (!res)
                return -ENODEV;
 
-       info = kmalloc(sizeof(struct pxa2xx_flash_info), GFP_KERNEL);
+       info = kzalloc(sizeof(struct pxa2xx_flash_info), GFP_KERNEL);
        if (!info)
                return -ENOMEM;
 
-       memset(info, 0, sizeof(struct pxa2xx_flash_info));
        info->map.name = (char *) flash->name;
        info->map.bankwidth = flash->width;
        info->map.phys = res->start;
 
 {
        int i, bad = 0;
 
-       bbt = kmalloc(ebcnt, GFP_KERNEL);
+       bbt = kzalloc(ebcnt, GFP_KERNEL);
        if (!bbt) {
                printk(PRINT_PREF "error: cannot allocate memory\n");
                return -ENOMEM;
        }
-       memset(bbt, 0 , ebcnt);
 
        printk(PRINT_PREF "scanning for bad eraseblocks\n");
        for (i = 0; i < ebcnt; ++i) {
 
 {
        int i, bad = 0;
 
-       bbt = kmalloc(ebcnt, GFP_KERNEL);
+       bbt = kzalloc(ebcnt, GFP_KERNEL);
        if (!bbt) {
                printk(PRINT_PREF "error: cannot allocate memory\n");
                return -ENOMEM;
        }
-       memset(bbt, 0 , ebcnt);
 
        /* NOR flash does not implement block_isbad */
        if (mtd->block_isbad == NULL)
 
 {
        int i, bad = 0;
 
-       bbt = kmalloc(ebcnt, GFP_KERNEL);
+       bbt = kzalloc(ebcnt, GFP_KERNEL);
        if (!bbt) {
                printk(PRINT_PREF "error: cannot allocate memory\n");
                return -ENOMEM;
        }
-       memset(bbt, 0 , ebcnt);
 
        /* NOR flash does not implement block_isbad */
        if (mtd->block_isbad == NULL)
 
 {
        int i, bad = 0;
 
-       bbt = kmalloc(ebcnt, GFP_KERNEL);
+       bbt = kzalloc(ebcnt, GFP_KERNEL);
        if (!bbt) {
                printk(PRINT_PREF "error: cannot allocate memory\n");
                return -ENOMEM;
        }
-       memset(bbt, 0 , ebcnt);
 
        /* NOR flash does not implement block_isbad */
        if (mtd->block_isbad == NULL)
 
 {
        int i, bad = 0;
 
-       bbt = kmalloc(ebcnt, GFP_KERNEL);
+       bbt = kzalloc(ebcnt, GFP_KERNEL);
        if (!bbt) {
                printk(PRINT_PREF "error: cannot allocate memory\n");
                return -ENOMEM;
        }
-       memset(bbt, 0 , ebcnt);
 
        printk(PRINT_PREF "scanning for bad eraseblocks\n");
        for (i = 0; i < ebcnt; ++i) {