OSDN Git Service

mtd: nand: cafe: use the mtd instance embedded in struct nand_chip
authorBoris BREZILLON <boris.brezillon@free-electrons.com>
Thu, 10 Dec 2015 07:59:55 +0000 (08:59 +0100)
committerBrian Norris <computersforpeace@gmail.com>
Fri, 18 Dec 2015 18:25:07 +0000 (10:25 -0800)
struct nand_chip now embeds an mtd device. Make use of this mtd instance.

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
drivers/mtd/nand/cafe_nand.c

index 77c92f1..7d6a142 100644 (file)
@@ -605,11 +605,11 @@ static int cafe_nand_probe(struct pci_dev *pdev,
 
        pci_set_master(pdev);
 
-       mtd = kzalloc(sizeof(*mtd) + sizeof(struct cafe_priv), GFP_KERNEL);
-       if (!mtd)
+       cafe = kzalloc(sizeof(*cafe), GFP_KERNEL);
+       if (!cafe)
                return  -ENOMEM;
-       cafe = (void *)(&mtd[1]);
 
+       mtd = nand_to_mtd(&cafe->nand);
        mtd->dev.parent = &pdev->dev;
        mtd->priv = &cafe->nand;
        cafe->nand.priv = cafe;
@@ -792,7 +792,7 @@ static int cafe_nand_probe(struct pci_dev *pdev,
  out_ior:
        pci_iounmap(pdev, cafe->mmio);
  out_free_mtd:
-       kfree(mtd);
+       kfree(cafe);
  out:
        return err;
 }
@@ -813,7 +813,7 @@ static void cafe_nand_remove(struct pci_dev *pdev)
                        2112 + sizeof(struct nand_buffers) +
                        mtd->writesize + mtd->oobsize,
                        cafe->dmabuf, cafe->dmaaddr);
-       kfree(mtd);
+       kfree(cafe);
 }
 
 static const struct pci_device_id cafe_nand_tbl[] = {