}
 
        /* Allocate memory for MTD device structure and private data */
-       new_mtd = kmalloc(sizeof(struct mtd_info) + sizeof(struct nand_chip), GFP_KERNEL);
+       new_mtd = kzalloc(sizeof(struct mtd_info) + sizeof(struct nand_chip), GFP_KERNEL);
        if (!new_mtd) {
                printk(KERN_WARNING "Unable to allocate CS553X NAND MTD device structure.\n");
                err = -ENOMEM;
        /* Get pointer to private data */
        this = (struct nand_chip *)(&new_mtd[1]);
 
-       /* Initialize structures */
-       memset(new_mtd, 0, sizeof(struct mtd_info));
-       memset(this, 0, sizeof(struct nand_chip));
-
        /* Link the private data with the MTD structure */
        new_mtd->priv = this;
        new_mtd->owner = THIS_MODULE;