]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
drop a bunch of mtd patches from 4.9 as something went wrong.
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Jun 2020 20:05:29 +0000 (22:05 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 23 Jun 2020 20:05:29 +0000 (22:05 +0200)
queue-4.9/mtd-rawnand-diskonchip-fix-the-probe-error-path.patch [deleted file]
queue-4.9/mtd-rawnand-diskonchip-fix-the-probe-error-path.patch-32722 [deleted file]
queue-4.9/mtd-rawnand-mtk-fix-the-probe-error-path.patch [deleted file]
queue-4.9/mtd-rawnand-orion-fix-the-probe-error-path.patch [deleted file]
queue-4.9/mtd-rawnand-pass-a-nand_chip-object-to-nand_release.patch [deleted file]
queue-4.9/mtd-rawnand-plat_nand-fix-the-probe-error-path.patch [deleted file]
queue-4.9/mtd-rawnand-sharpsl-fix-the-probe-error-path.patch [deleted file]
queue-4.9/mtd-rawnand-socrates-fix-the-probe-error-path.patch [deleted file]
queue-4.9/mtd-rawnand-tmio-fix-the-probe-error-path.patch [deleted file]
queue-4.9/mtd-rawnand-xway-fix-the-probe-error-path.patch [deleted file]
queue-4.9/series

diff --git a/queue-4.9/mtd-rawnand-diskonchip-fix-the-probe-error-path.patch b/queue-4.9/mtd-rawnand-diskonchip-fix-the-probe-error-path.patch
deleted file mode 100644 (file)
index d40f7c2..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-From 96d93a4927a95989c4362d76a92b8267dc3772da Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 19 May 2020 14:59:45 +0200
-Subject: mtd: rawnand: diskonchip: Fix the probe error path
-
-From: Miquel Raynal <miquel.raynal@bootlin.com>
-
-[ Upstream commit c5be12e45940f1aa1b5dfa04db5d15ad24f7c896 ]
-
-Not sure nand_cleanup() is the right function to call here but in any
-case it is not nand_release(). Indeed, even a comment says that
-calling nand_release() is a bit of a hack as there is no MTD device to
-unregister. So switch to nand_cleanup() for now and drop this
-comment.
-
-There is no Fixes tag applying here as the use of nand_release()
-in this driver predates by far the introduction of nand_cleanup() in
-commit d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-which makes this change possible. However, pointing this commit as the
-culprit for backporting purposes makes sense even if it did not intruce
-any bug.
-
-Fixes: d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-13-miquel.raynal@bootlin.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mtd/nand/diskonchip.c | 7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/mtd/nand/diskonchip.c b/drivers/mtd/nand/diskonchip.c
-index a023ab9e9cbf6..06a7bad611a94 100644
---- a/drivers/mtd/nand/diskonchip.c
-+++ b/drivers/mtd/nand/diskonchip.c
-@@ -1605,13 +1605,10 @@ static int __init doc_probe(unsigned long physadr)
-               numchips = doc2001_init(mtd);
-       if ((ret = nand_scan(mtd, numchips)) || (ret = doc->late_init(mtd))) {
--              /* DBB note: i believe nand_release is necessary here, as
-+              /* DBB note: i believe nand_cleanup is necessary here, as
-                  buffers may have been allocated in nand_base.  Check with
-                  Thomas. FIX ME! */
--              /* nand_release will call mtd_device_unregister, but we
--                 haven't yet added it.  This is handled without incident by
--                 mtd_device_unregister, as far as I can tell. */
--              nand_release(mtd);
-+              nand_cleanup(mtd);
-               kfree(nand);
-               goto fail;
-       }
--- 
-2.25.1
-
diff --git a/queue-4.9/mtd-rawnand-diskonchip-fix-the-probe-error-path.patch-32722 b/queue-4.9/mtd-rawnand-diskonchip-fix-the-probe-error-path.patch-32722
deleted file mode 100644 (file)
index d8a0aaa..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-From 0662e19061712624e62bb9550dff03604da468f7 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 19 May 2020 14:59:45 +0200
-Subject: mtd: rawnand: diskonchip: Fix the probe error path
-
-From: Miquel Raynal <miquel.raynal@bootlin.com>
-
-[ Upstream commit c5be12e45940f1aa1b5dfa04db5d15ad24f7c896 ]
-
-Not sure nand_cleanup() is the right function to call here but in any
-case it is not nand_release(). Indeed, even a comment says that
-calling nand_release() is a bit of a hack as there is no MTD device to
-unregister. So switch to nand_cleanup() for now and drop this
-comment.
-
-There is no Fixes tag applying here as the use of nand_release()
-in this driver predates by far the introduction of nand_cleanup() in
-commit d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-which makes this change possible. However, pointing this commit as the
-culprit for backporting purposes makes sense even if it did not intruce
-any bug.
-
-Fixes: d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-13-miquel.raynal@bootlin.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mtd/nand/diskonchip.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/nand/diskonchip.c b/drivers/mtd/nand/diskonchip.c
-index 339df40898594..374b7a10ba517 100644
---- a/drivers/mtd/nand/diskonchip.c
-+++ b/drivers/mtd/nand/diskonchip.c
-@@ -1608,7 +1608,7 @@ static int __init doc_probe(unsigned long physadr)
-               /* DBB note: i believe nand_cleanup is necessary here, as
-                  buffers may have been allocated in nand_base.  Check with
-                  Thomas. FIX ME! */
--              nand_release(nand);
-+              nand_cleanup(nand);
-               kfree(nand);
-               goto fail;
-       }
--- 
-2.25.1
-
diff --git a/queue-4.9/mtd-rawnand-mtk-fix-the-probe-error-path.patch b/queue-4.9/mtd-rawnand-mtk-fix-the-probe-error-path.patch
deleted file mode 100644 (file)
index bcaf660..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From 45e7b92c39a202a2b7c22572762f2f03b9b71a7c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 19 May 2020 15:00:00 +0200
-Subject: mtd: rawnand: mtk: Fix the probe error path
-
-From: Miquel Raynal <miquel.raynal@bootlin.com>
-
-[ Upstream commit 8a82bbcadec877f5f938c54026278dfc1f05a332 ]
-
-nand_release() is supposed be called after MTD device registration.
-Here, only nand_scan() happened, so use nand_cleanup() instead.
-
-There is no real Fixes tag applying here as the use of nand_release()
-in this driver predates the introduction of nand_cleanup() in
-commit d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-which makes this change possible. However, pointing this commit as the
-culprit for backporting purposes makes sense even if this commit is not
-introducing any bug.
-
-Fixes: d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-28-miquel.raynal@bootlin.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mtd/nand/mtk_nand.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/nand/mtk_nand.c b/drivers/mtd/nand/mtk_nand.c
-index fadc755e55f82..2375dce766eff 100644
---- a/drivers/mtd/nand/mtk_nand.c
-+++ b/drivers/mtd/nand/mtk_nand.c
-@@ -1327,7 +1327,7 @@ static int mtk_nfc_nand_chip_init(struct device *dev, struct mtk_nfc *nfc,
-       ret = mtd_device_parse_register(mtd, NULL, NULL, NULL, 0);
-       if (ret) {
-               dev_err(dev, "mtd parse partition error\n");
--              nand_release(nand);
-+              nand_cleanup(nand);
-               return ret;
-       }
--- 
-2.25.1
-
diff --git a/queue-4.9/mtd-rawnand-orion-fix-the-probe-error-path.patch b/queue-4.9/mtd-rawnand-orion-fix-the-probe-error-path.patch
deleted file mode 100644 (file)
index 48358ac..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From 0ffeae0b263e279a386f4402b357e8297384c47c Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 19 May 2020 15:00:06 +0200
-Subject: mtd: rawnand: orion: Fix the probe error path
-
-From: Miquel Raynal <miquel.raynal@bootlin.com>
-
-[ Upstream commit be238fbf78e4c7c586dac235ab967d3e565a4d1a ]
-
-nand_release() is supposed be called after MTD device registration.
-Here, only nand_scan() happened, so use nand_cleanup() instead.
-
-There is no real Fixes tag applying here as the use of nand_release()
-in this driver predates by far the introduction of nand_cleanup() in
-commit d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-which makes this change possible. However, pointing this commit as the
-culprit for backporting purposes makes sense even if this commit is not
-introducing any bug.
-
-Fixes: d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-34-miquel.raynal@bootlin.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mtd/nand/orion_nand.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/nand/orion_nand.c b/drivers/mtd/nand/orion_nand.c
-index cfd53f0ba6c31..0acfc0a7d8e08 100644
---- a/drivers/mtd/nand/orion_nand.c
-+++ b/drivers/mtd/nand/orion_nand.c
-@@ -167,7 +167,7 @@ static int __init orion_nand_probe(struct platform_device *pdev)
-       mtd->name = "orion_nand";
-       ret = mtd_device_register(mtd, board->parts, board->nr_parts);
-       if (ret) {
--              nand_release(nc);
-+              nand_cleanup(nc);
-               goto no_dev;
-       }
--- 
-2.25.1
-
diff --git a/queue-4.9/mtd-rawnand-pass-a-nand_chip-object-to-nand_release.patch b/queue-4.9/mtd-rawnand-pass-a-nand_chip-object-to-nand_release.patch
deleted file mode 100644 (file)
index 6e27983..0000000
+++ /dev/null
@@ -1,815 +0,0 @@
-From 8fb2dccd2de9eadc5c3d6bb74815022facd7655d Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Thu, 6 Sep 2018 14:05:15 +0200
-Subject: mtd: rawnand: Pass a nand_chip object to nand_release()
-
-From: Boris Brezillon <boris.brezillon@bootlin.com>
-
-[ Upstream commit 59ac276f22270fb2094910f9a734c17f41c25e70 ]
-
-Let's make the raw NAND API consistent by patching all helpers to
-take a nand_chip object instead of an mtd_info one.
-
-Now is nand_release()'s turn.
-
-Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mtd/nand/ams-delta.c           | 2 +-
- drivers/mtd/nand/au1550nd.c            | 2 +-
- drivers/mtd/nand/bcm47xxnflash/main.c  | 2 +-
- drivers/mtd/nand/brcmnand/brcmnand.c   | 2 +-
- drivers/mtd/nand/cafe_nand.c           | 2 +-
- drivers/mtd/nand/cmx270_nand.c         | 2 +-
- drivers/mtd/nand/cs553x_nand.c         | 2 +-
- drivers/mtd/nand/davinci_nand.c        | 2 +-
- drivers/mtd/nand/denali.c              | 2 +-
- drivers/mtd/nand/diskonchip.c          | 4 ++--
- drivers/mtd/nand/docg4.c               | 4 ++--
- drivers/mtd/nand/fsl_elbc_nand.c       | 2 +-
- drivers/mtd/nand/fsl_ifc_nand.c        | 2 +-
- drivers/mtd/nand/fsl_upm.c             | 2 +-
- drivers/mtd/nand/fsmc_nand.c           | 2 +-
- drivers/mtd/nand/gpio.c                | 2 +-
- drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 2 +-
- drivers/mtd/nand/hisi504_nand.c        | 5 ++---
- drivers/mtd/nand/jz4740_nand.c         | 2 +-
- drivers/mtd/nand/jz4780_nand.c         | 4 ++--
- drivers/mtd/nand/lpc32xx_mlc.c         | 3 +--
- drivers/mtd/nand/lpc32xx_slc.c         | 3 +--
- drivers/mtd/nand/mpc5121_nfc.c         | 2 +-
- drivers/mtd/nand/mtk_nand.c            | 4 ++--
- drivers/mtd/nand/mxc_nand.c            | 2 +-
- drivers/mtd/nand/nand_base.c           | 8 ++++----
- drivers/mtd/nand/nandsim.c             | 4 ++--
- drivers/mtd/nand/ndfc.c                | 2 +-
- drivers/mtd/nand/nuc900_nand.c         | 2 +-
- drivers/mtd/nand/omap2.c               | 2 +-
- drivers/mtd/nand/orion_nand.c          | 5 ++---
- drivers/mtd/nand/pasemi_nand.c         | 2 +-
- drivers/mtd/nand/plat_nand.c           | 4 ++--
- drivers/mtd/nand/qcom_nandc.c          | 2 +-
- drivers/mtd/nand/r852.c                | 4 ++--
- drivers/mtd/nand/s3c2410.c             | 2 +-
- drivers/mtd/nand/sh_flctl.c            | 2 +-
- drivers/mtd/nand/sharpsl.c             | 4 ++--
- drivers/mtd/nand/socrates_nand.c       | 5 ++---
- drivers/mtd/nand/sunxi_nand.c          | 4 ++--
- drivers/mtd/nand/tmio_nand.c           | 4 ++--
- drivers/mtd/nand/txx9ndfmc.c           | 2 +-
- drivers/mtd/nand/vf610_nfc.c           | 2 +-
- drivers/mtd/nand/xway_nand.c           | 4 ++--
- include/linux/mtd/nand.h               | 6 ++----
- 45 files changed, 63 insertions(+), 70 deletions(-)
-
-diff --git a/drivers/mtd/nand/ams-delta.c b/drivers/mtd/nand/ams-delta.c
-index 78e12cc8bac2f..02ec2d183607f 100644
---- a/drivers/mtd/nand/ams-delta.c
-+++ b/drivers/mtd/nand/ams-delta.c
-@@ -264,7 +264,7 @@ static int ams_delta_cleanup(struct platform_device *pdev)
-       void __iomem *io_base = platform_get_drvdata(pdev);
-       /* Release resources, unregister device */
--      nand_release(ams_delta_mtd);
-+      nand_release(mtd_to_nand(ams_delta_mtd));
-       gpio_free_array(_mandatory_gpio, ARRAY_SIZE(_mandatory_gpio));
-       gpio_free(AMS_DELTA_GPIO_PIN_NAND_RB);
-diff --git a/drivers/mtd/nand/au1550nd.c b/drivers/mtd/nand/au1550nd.c
-index 9bf6d9915694e..a0e7789131dfc 100644
---- a/drivers/mtd/nand/au1550nd.c
-+++ b/drivers/mtd/nand/au1550nd.c
-@@ -496,7 +496,7 @@ static int au1550nd_remove(struct platform_device *pdev)
-       struct au1550nd_ctx *ctx = platform_get_drvdata(pdev);
-       struct resource *r = platform_get_resource(pdev, IORESOURCE_MEM, 0);
--      nand_release(nand_to_mtd(&ctx->chip));
-+      nand_release(&ctx->chip);
-       iounmap(ctx->base);
-       release_mem_region(r->start, 0x1000);
-       kfree(ctx);
-diff --git a/drivers/mtd/nand/bcm47xxnflash/main.c b/drivers/mtd/nand/bcm47xxnflash/main.c
-index fb31429b70a9a..d796941608457 100644
---- a/drivers/mtd/nand/bcm47xxnflash/main.c
-+++ b/drivers/mtd/nand/bcm47xxnflash/main.c
-@@ -65,7 +65,7 @@ static int bcm47xxnflash_remove(struct platform_device *pdev)
- {
-       struct bcm47xxnflash *nflash = platform_get_drvdata(pdev);
--      nand_release(nand_to_mtd(&nflash->nand_chip));
-+      nand_release(&nflash->nand_chip);
-       return 0;
- }
-diff --git a/drivers/mtd/nand/brcmnand/brcmnand.c b/drivers/mtd/nand/brcmnand/brcmnand.c
-index 1291492a1cef1..fbee81909d38a 100644
---- a/drivers/mtd/nand/brcmnand/brcmnand.c
-+++ b/drivers/mtd/nand/brcmnand/brcmnand.c
-@@ -2595,7 +2595,7 @@ int brcmnand_remove(struct platform_device *pdev)
-       struct brcmnand_host *host;
-       list_for_each_entry(host, &ctrl->host_list, node)
--              nand_release(nand_to_mtd(&host->chip));
-+              nand_release(&host->chip);
-       clk_disable_unprepare(ctrl->clk);
-diff --git a/drivers/mtd/nand/cafe_nand.c b/drivers/mtd/nand/cafe_nand.c
-index 0b0c93702abbd..c16e740c01c38 100644
---- a/drivers/mtd/nand/cafe_nand.c
-+++ b/drivers/mtd/nand/cafe_nand.c
-@@ -825,7 +825,7 @@ static void cafe_nand_remove(struct pci_dev *pdev)
-       /* Disable NAND IRQ in global IRQ mask register */
-       cafe_writel(cafe, ~1 & cafe_readl(cafe, GLOBAL_IRQ_MASK), GLOBAL_IRQ_MASK);
-       free_irq(pdev->irq, mtd);
--      nand_release(mtd);
-+      nand_release(chip);
-       free_rs(cafe->rs);
-       pci_iounmap(pdev, cafe->mmio);
-       dma_free_coherent(&cafe->pdev->dev,
-diff --git a/drivers/mtd/nand/cmx270_nand.c b/drivers/mtd/nand/cmx270_nand.c
-index 49133783ca536..b9667204e711a 100644
---- a/drivers/mtd/nand/cmx270_nand.c
-+++ b/drivers/mtd/nand/cmx270_nand.c
-@@ -230,7 +230,7 @@ module_init(cmx270_init);
- static void __exit cmx270_cleanup(void)
- {
-       /* Release resources, unregister device */
--      nand_release(cmx270_nand_mtd);
-+      nand_release(mtd_to_nand(cmx270_nand_mtd));
-       gpio_free(GPIO_NAND_RB);
-       gpio_free(GPIO_NAND_CS);
-diff --git a/drivers/mtd/nand/cs553x_nand.c b/drivers/mtd/nand/cs553x_nand.c
-index a65e4e0f57a1c..4779dfec3576f 100644
---- a/drivers/mtd/nand/cs553x_nand.c
-+++ b/drivers/mtd/nand/cs553x_nand.c
-@@ -339,7 +339,7 @@ static void __exit cs553x_cleanup(void)
-               mmio_base = this->IO_ADDR_R;
-               /* Release resources, unregister device */
--              nand_release(mtd);
-+              nand_release(this);
-               kfree(mtd->name);
-               cs553x_mtd[i] = NULL;
-diff --git a/drivers/mtd/nand/davinci_nand.c b/drivers/mtd/nand/davinci_nand.c
-index 27fa8b87cd5fc..c7f535676e49f 100644
---- a/drivers/mtd/nand/davinci_nand.c
-+++ b/drivers/mtd/nand/davinci_nand.c
-@@ -840,7 +840,7 @@ static int nand_davinci_remove(struct platform_device *pdev)
-               ecc4_busy = false;
-       spin_unlock_irq(&davinci_nand_lock);
--      nand_release(nand_to_mtd(&info->chip));
-+      nand_release(&info->chip);
-       clk_disable_unprepare(info->clk);
-diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
-index 0476ae8776d93..982cbc7f412f4 100644
---- a/drivers/mtd/nand/denali.c
-+++ b/drivers/mtd/nand/denali.c
-@@ -1655,7 +1655,7 @@ void denali_remove(struct denali_nand_info *denali)
-        */
-       int bufsize = mtd->writesize + mtd->oobsize;
--      nand_release(mtd);
-+      nand_release(&denali->nand);
-       denali_irq_cleanup(denali->irq, denali);
-       dma_unmap_single(denali->dev, denali->buf.dma_buf, bufsize,
-                        DMA_BIDIRECTIONAL);
-diff --git a/drivers/mtd/nand/diskonchip.c b/drivers/mtd/nand/diskonchip.c
-index 06a7bad611a94..339df40898594 100644
---- a/drivers/mtd/nand/diskonchip.c
-+++ b/drivers/mtd/nand/diskonchip.c
-@@ -1608,7 +1608,7 @@ static int __init doc_probe(unsigned long physadr)
-               /* DBB note: i believe nand_cleanup is necessary here, as
-                  buffers may have been allocated in nand_base.  Check with
-                  Thomas. FIX ME! */
--              nand_cleanup(mtd);
-+              nand_release(nand);
-               kfree(nand);
-               goto fail;
-       }
-@@ -1641,7 +1641,7 @@ static void release_nanddoc(void)
-               doc = nand_get_controller_data(nand);
-               nextmtd = doc->nextdoc;
--              nand_release(mtd);
-+              nand_release(nand);
-               iounmap(doc->virtadr);
-               release_mem_region(doc->physadr, DOC_IOREMAP_LEN);
-               kfree(nand);
-diff --git a/drivers/mtd/nand/docg4.c b/drivers/mtd/nand/docg4.c
-index 7af2a3cd949ee..5798cd87f340b 100644
---- a/drivers/mtd/nand/docg4.c
-+++ b/drivers/mtd/nand/docg4.c
-@@ -1374,7 +1374,7 @@ static int __init probe_docg4(struct platform_device *pdev)
-       return 0;
- fail:
--      nand_release(mtd); /* deletes partitions and mtd devices */
-+      nand_release(nand); /* deletes partitions and mtd devices */
-       free_bch(doc->bch);
-       kfree(nand);
-@@ -1387,7 +1387,7 @@ static int __init probe_docg4(struct platform_device *pdev)
- static int __exit cleanup_docg4(struct platform_device *pdev)
- {
-       struct docg4_priv *doc = platform_get_drvdata(pdev);
--      nand_release(doc->mtd);
-+      nand_release(mtd_to_nand(doc->mtd));
-       free_bch(doc->bch);
-       kfree(mtd_to_nand(doc->mtd));
-       iounmap(doc->virtadr);
-diff --git a/drivers/mtd/nand/fsl_elbc_nand.c b/drivers/mtd/nand/fsl_elbc_nand.c
-index 113f76e599372..2fc4f2ab89ff5 100644
---- a/drivers/mtd/nand/fsl_elbc_nand.c
-+++ b/drivers/mtd/nand/fsl_elbc_nand.c
-@@ -811,7 +811,7 @@ static int fsl_elbc_chip_remove(struct fsl_elbc_mtd *priv)
-       struct fsl_elbc_fcm_ctrl *elbc_fcm_ctrl = priv->ctrl->nand;
-       struct mtd_info *mtd = nand_to_mtd(&priv->chip);
--      nand_release(mtd);
-+      nand_release(&priv->chip);
-       kfree(mtd->name);
-diff --git a/drivers/mtd/nand/fsl_ifc_nand.c b/drivers/mtd/nand/fsl_ifc_nand.c
-index 4c3b986dd74d1..cf0fccb5908e7 100644
---- a/drivers/mtd/nand/fsl_ifc_nand.c
-+++ b/drivers/mtd/nand/fsl_ifc_nand.c
-@@ -918,7 +918,7 @@ static int fsl_ifc_chip_remove(struct fsl_ifc_mtd *priv)
- {
-       struct mtd_info *mtd = nand_to_mtd(&priv->chip);
--      nand_release(mtd);
-+      nand_release(&priv->chip);
-       kfree(mtd->name);
-diff --git a/drivers/mtd/nand/fsl_upm.c b/drivers/mtd/nand/fsl_upm.c
-index d85fa2555b683..0b4d2489cc716 100644
---- a/drivers/mtd/nand/fsl_upm.c
-+++ b/drivers/mtd/nand/fsl_upm.c
-@@ -326,7 +326,7 @@ static int fun_remove(struct platform_device *ofdev)
-       struct mtd_info *mtd = nand_to_mtd(&fun->chip);
-       int i;
--      nand_release(mtd);
-+      nand_release(&fun->chip);
-       kfree(mtd->name);
-       for (i = 0; i < fun->mchip_count; i++) {
-diff --git a/drivers/mtd/nand/fsmc_nand.c b/drivers/mtd/nand/fsmc_nand.c
-index d4f454a4b35e7..92737deb7845d 100644
---- a/drivers/mtd/nand/fsmc_nand.c
-+++ b/drivers/mtd/nand/fsmc_nand.c
-@@ -1038,7 +1038,7 @@ static int fsmc_nand_remove(struct platform_device *pdev)
-       struct fsmc_nand_data *host = platform_get_drvdata(pdev);
-       if (host) {
--              nand_release(nand_to_mtd(&host->nand));
-+              nand_release(&host->nand);
-               if (host->mode == USE_DMA_ACCESS) {
-                       dma_release_channel(host->write_dma_chan);
-diff --git a/drivers/mtd/nand/gpio.c b/drivers/mtd/nand/gpio.c
-index 6317f6836022e..c7461ca1c1a69 100644
---- a/drivers/mtd/nand/gpio.c
-+++ b/drivers/mtd/nand/gpio.c
-@@ -197,7 +197,7 @@ static int gpio_nand_remove(struct platform_device *pdev)
- {
-       struct gpiomtd *gpiomtd = platform_get_drvdata(pdev);
--      nand_release(nand_to_mtd(&gpiomtd->nand_chip));
-+      nand_release(&gpiomtd->nand_chip);
-       if (gpio_is_valid(gpiomtd->plat.gpio_nwp))
-               gpio_set_value(gpiomtd->plat.gpio_nwp, 0);
-diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
-index d9dab42758590..f4a99e91c2500 100644
---- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
-+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
-@@ -1930,7 +1930,7 @@ static int gpmi_set_geometry(struct gpmi_nand_data *this)
- static void gpmi_nand_exit(struct gpmi_nand_data *this)
- {
--      nand_release(nand_to_mtd(&this->nand));
-+      nand_release(&this->nand);
-       gpmi_free_dma_buffer(this);
- }
-diff --git a/drivers/mtd/nand/hisi504_nand.c b/drivers/mtd/nand/hisi504_nand.c
-index 9432546f4cd47..6c96d9d29a310 100644
---- a/drivers/mtd/nand/hisi504_nand.c
-+++ b/drivers/mtd/nand/hisi504_nand.c
-@@ -823,7 +823,7 @@ static int hisi_nfc_probe(struct platform_device *pdev)
-       return 0;
- err_mtd:
--      nand_release(mtd);
-+      nand_release(chip);
- err_res:
-       return ret;
- }
-@@ -831,9 +831,8 @@ static int hisi_nfc_probe(struct platform_device *pdev)
- static int hisi_nfc_remove(struct platform_device *pdev)
- {
-       struct hinfc_host *host = platform_get_drvdata(pdev);
--      struct mtd_info *mtd = nand_to_mtd(&host->chip);
--      nand_release(mtd);
-+      nand_release(&host->chip);
-       return 0;
- }
-diff --git a/drivers/mtd/nand/jz4740_nand.c b/drivers/mtd/nand/jz4740_nand.c
-index 5551c36adbdf1..e664b2a0eeae0 100644
---- a/drivers/mtd/nand/jz4740_nand.c
-+++ b/drivers/mtd/nand/jz4740_nand.c
-@@ -520,7 +520,7 @@ static int jz_nand_remove(struct platform_device *pdev)
-       struct jz_nand *nand = platform_get_drvdata(pdev);
-       size_t i;
--      nand_release(nand_to_mtd(&nand->chip));
-+      nand_release(&nand->chip);
-       /* Deassert and disable all chips */
-       writel(0, nand->base + JZ_REG_NAND_CTRL);
-diff --git a/drivers/mtd/nand/jz4780_nand.c b/drivers/mtd/nand/jz4780_nand.c
-index a39bb70175eea..e8aaf2543946c 100644
---- a/drivers/mtd/nand/jz4780_nand.c
-+++ b/drivers/mtd/nand/jz4780_nand.c
-@@ -293,7 +293,7 @@ static int jz4780_nand_init_chip(struct platform_device *pdev,
-       ret = mtd_device_register(mtd, NULL, 0);
-       if (ret) {
--              nand_release(mtd);
-+              nand_release(chip);
-               return ret;
-       }
-@@ -308,7 +308,7 @@ static void jz4780_nand_cleanup_chips(struct jz4780_nand_controller *nfc)
-       while (!list_empty(&nfc->chips)) {
-               chip = list_first_entry(&nfc->chips, struct jz4780_nand_chip, chip_list);
--              nand_release(nand_to_mtd(&chip->chip));
-+              nand_release(&chip->chip);
-               list_del(&chip->chip_list);
-       }
- }
-diff --git a/drivers/mtd/nand/lpc32xx_mlc.c b/drivers/mtd/nand/lpc32xx_mlc.c
-index bc6e49af063a2..90e7742992404 100644
---- a/drivers/mtd/nand/lpc32xx_mlc.c
-+++ b/drivers/mtd/nand/lpc32xx_mlc.c
-@@ -828,9 +828,8 @@ static int lpc32xx_nand_probe(struct platform_device *pdev)
- static int lpc32xx_nand_remove(struct platform_device *pdev)
- {
-       struct lpc32xx_nand_host *host = platform_get_drvdata(pdev);
--      struct mtd_info *mtd = nand_to_mtd(&host->nand_chip);
--      nand_release(mtd);
-+      nand_release(&host->nand_chip);
-       free_irq(host->irq, host);
-       if (use_dma)
-               dma_release_channel(host->dma_chan);
-diff --git a/drivers/mtd/nand/lpc32xx_slc.c b/drivers/mtd/nand/lpc32xx_slc.c
-index 8d3edc34958e7..05cbef16d6b50 100644
---- a/drivers/mtd/nand/lpc32xx_slc.c
-+++ b/drivers/mtd/nand/lpc32xx_slc.c
-@@ -959,9 +959,8 @@ static int lpc32xx_nand_remove(struct platform_device *pdev)
- {
-       uint32_t tmp;
-       struct lpc32xx_nand_host *host = platform_get_drvdata(pdev);
--      struct mtd_info *mtd = nand_to_mtd(&host->nand_chip);
--      nand_release(mtd);
-+      nand_release(&host->nand_chip);
-       dma_release_channel(host->dma_chan);
-       /* Force CE high */
-diff --git a/drivers/mtd/nand/mpc5121_nfc.c b/drivers/mtd/nand/mpc5121_nfc.c
-index 7eacb2f545f50..9662f8fe47137 100644
---- a/drivers/mtd/nand/mpc5121_nfc.c
-+++ b/drivers/mtd/nand/mpc5121_nfc.c
-@@ -827,7 +827,7 @@ static int mpc5121_nfc_remove(struct platform_device *op)
-       struct device *dev = &op->dev;
-       struct mtd_info *mtd = dev_get_drvdata(dev);
--      nand_release(mtd);
-+      nand_release(mtd_to_nand(mtd));
-       mpc5121_nfc_free(dev, mtd);
-       return 0;
-diff --git a/drivers/mtd/nand/mtk_nand.c b/drivers/mtd/nand/mtk_nand.c
-index ca95ae00215ec..fadc755e55f82 100644
---- a/drivers/mtd/nand/mtk_nand.c
-+++ b/drivers/mtd/nand/mtk_nand.c
-@@ -1327,7 +1327,7 @@ static int mtk_nfc_nand_chip_init(struct device *dev, struct mtk_nfc *nfc,
-       ret = mtd_device_parse_register(mtd, NULL, NULL, NULL, 0);
-       if (ret) {
-               dev_err(dev, "mtd parse partition error\n");
--              nand_release(mtd);
-+              nand_release(nand);
-               return ret;
-       }
-@@ -1450,7 +1450,7 @@ static int mtk_nfc_remove(struct platform_device *pdev)
-       while (!list_empty(&nfc->chips)) {
-               chip = list_first_entry(&nfc->chips, struct mtk_nfc_nand_chip,
-                                       node);
--              nand_release(nand_to_mtd(&chip->nand));
-+              nand_release(&chip->nand);
-               list_del(&chip->node);
-       }
-diff --git a/drivers/mtd/nand/mxc_nand.c b/drivers/mtd/nand/mxc_nand.c
-index 5c44eb57885b9..deb3cbadbc519 100644
---- a/drivers/mtd/nand/mxc_nand.c
-+++ b/drivers/mtd/nand/mxc_nand.c
-@@ -1838,7 +1838,7 @@ static int mxcnd_remove(struct platform_device *pdev)
- {
-       struct mxc_nand_host *host = platform_get_drvdata(pdev);
--      nand_release(nand_to_mtd(&host->nand));
-+      nand_release(&host->nand);
-       if (host->clk_act)
-               clk_disable_unprepare(host->clk);
-diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
-index 5fb45161789ce..bdf40c090acdc 100644
---- a/drivers/mtd/nand/nand_base.c
-+++ b/drivers/mtd/nand/nand_base.c
-@@ -4941,12 +4941,12 @@ EXPORT_SYMBOL_GPL(nand_cleanup);
- /**
-  * nand_release - [NAND Interface] Unregister the MTD device and free resources
-  *              held by the NAND device
-- * @mtd: MTD device structure
-+ * @chip: NAND chip object
-  */
--void nand_release(struct mtd_info *mtd)
-+void nand_release(struct nand_chip *chip)
- {
--      mtd_device_unregister(mtd);
--      nand_cleanup(mtd_to_nand(mtd));
-+      mtd_device_unregister(nand_to_mtd(chip));
-+      nand_cleanup(chip);
- }
- EXPORT_SYMBOL_GPL(nand_release);
-diff --git a/drivers/mtd/nand/nandsim.c b/drivers/mtd/nand/nandsim.c
-index 1eb934414eb58..fe593f2f1ec7d 100644
---- a/drivers/mtd/nand/nandsim.c
-+++ b/drivers/mtd/nand/nandsim.c
-@@ -2394,7 +2394,7 @@ static int __init ns_init_module(void)
- err_exit:
-       free_nandsim(nand);
--      nand_release(nsmtd);
-+      nand_release(chip);
-       for (i = 0;i < ARRAY_SIZE(nand->partitions); ++i)
-               kfree(nand->partitions[i].name);
- error:
-@@ -2417,7 +2417,7 @@ static void __exit ns_cleanup_module(void)
-       nandsim_debugfs_remove(ns);
-       free_nandsim(ns);    /* Free nandsim private resources */
--      nand_release(nsmtd); /* Unregister driver */
-+      nand_release(chip); /* Unregister driver */
-       for (i = 0;i < ARRAY_SIZE(ns->partitions); ++i)
-               kfree(ns->partitions[i].name);
-       kfree(mtd_to_nand(nsmtd));        /* Free other structures */
-diff --git a/drivers/mtd/nand/ndfc.c b/drivers/mtd/nand/ndfc.c
-index 28e6118362f7e..d03b47d2664b0 100644
---- a/drivers/mtd/nand/ndfc.c
-+++ b/drivers/mtd/nand/ndfc.c
-@@ -258,7 +258,7 @@ static int ndfc_remove(struct platform_device *ofdev)
-       struct ndfc_controller *ndfc = dev_get_drvdata(&ofdev->dev);
-       struct mtd_info *mtd = nand_to_mtd(&ndfc->chip);
--      nand_release(mtd);
-+      nand_release(&ndfc->chip);
-       kfree(mtd->name);
-       return 0;
-diff --git a/drivers/mtd/nand/nuc900_nand.c b/drivers/mtd/nand/nuc900_nand.c
-index 8f64011d32ef2..f7f54b46f246b 100644
---- a/drivers/mtd/nand/nuc900_nand.c
-+++ b/drivers/mtd/nand/nuc900_nand.c
-@@ -284,7 +284,7 @@ static int nuc900_nand_remove(struct platform_device *pdev)
- {
-       struct nuc900_nand *nuc900_nand = platform_get_drvdata(pdev);
--      nand_release(nand_to_mtd(&nuc900_nand->chip));
-+      nand_release(&nuc900_nand->chip);
-       clk_disable(nuc900_nand->clk);
-       return 0;
-diff --git a/drivers/mtd/nand/omap2.c b/drivers/mtd/nand/omap2.c
-index f3a516b3f108a..62c0ca437c91e 100644
---- a/drivers/mtd/nand/omap2.c
-+++ b/drivers/mtd/nand/omap2.c
-@@ -2307,7 +2307,7 @@ static int omap_nand_remove(struct platform_device *pdev)
-       }
-       if (info->dma)
-               dma_release_channel(info->dma);
--      nand_release(mtd);
-+      nand_release(nand_chip);
-       return 0;
- }
-diff --git a/drivers/mtd/nand/orion_nand.c b/drivers/mtd/nand/orion_nand.c
-index af2f09135fb0e..cfd53f0ba6c31 100644
---- a/drivers/mtd/nand/orion_nand.c
-+++ b/drivers/mtd/nand/orion_nand.c
-@@ -167,7 +167,7 @@ static int __init orion_nand_probe(struct platform_device *pdev)
-       mtd->name = "orion_nand";
-       ret = mtd_device_register(mtd, board->parts, board->nr_parts);
-       if (ret) {
--              nand_release(mtd);
-+              nand_release(nc);
-               goto no_dev;
-       }
-@@ -184,9 +184,8 @@ static int orion_nand_remove(struct platform_device *pdev)
- {
-       struct orion_nand_info *info = platform_get_drvdata(pdev);
-       struct nand_chip *chip = &info->chip;
--      struct mtd_info *mtd = nand_to_mtd(chip);
--      nand_release(mtd);
-+      nand_release(chip);
-       if (!IS_ERR(info->clk))
-               clk_disable_unprepare(info->clk);
-diff --git a/drivers/mtd/nand/pasemi_nand.c b/drivers/mtd/nand/pasemi_nand.c
-index 80c98eef44d90..3300e43e2cb9f 100644
---- a/drivers/mtd/nand/pasemi_nand.c
-+++ b/drivers/mtd/nand/pasemi_nand.c
-@@ -194,7 +194,7 @@ static int pasemi_nand_remove(struct platform_device *ofdev)
-       chip = mtd_to_nand(pasemi_nand_mtd);
-       /* Release resources, unregister device */
--      nand_release(pasemi_nand_mtd);
-+      nand_release(chip);
-       release_region(lpcctl, 4);
-diff --git a/drivers/mtd/nand/plat_nand.c b/drivers/mtd/nand/plat_nand.c
-index 415a53a0deeb3..245efb0f83e26 100644
---- a/drivers/mtd/nand/plat_nand.c
-+++ b/drivers/mtd/nand/plat_nand.c
-@@ -100,7 +100,7 @@ static int plat_nand_probe(struct platform_device *pdev)
-       if (!err)
-               return err;
--      nand_release(mtd);
-+      nand_release(&data->chip);
- out:
-       if (pdata->ctrl.remove)
-               pdata->ctrl.remove(pdev);
-@@ -115,7 +115,7 @@ static int plat_nand_remove(struct platform_device *pdev)
-       struct plat_nand_data *data = platform_get_drvdata(pdev);
-       struct platform_nand_data *pdata = dev_get_platdata(&pdev->dev);
--      nand_release(nand_to_mtd(&data->chip));
-+      nand_release(&data->chip);
-       if (pdata->ctrl.remove)
-               pdata->ctrl.remove(pdev);
-diff --git a/drivers/mtd/nand/qcom_nandc.c b/drivers/mtd/nand/qcom_nandc.c
-index 9f6c9a34b9eb6..4d9a3c90ab13b 100644
---- a/drivers/mtd/nand/qcom_nandc.c
-+++ b/drivers/mtd/nand/qcom_nandc.c
-@@ -2180,7 +2180,7 @@ static int qcom_nandc_remove(struct platform_device *pdev)
-       struct qcom_nand_host *host;
-       list_for_each_entry(host, &nandc->host_list, node)
--              nand_release(nand_to_mtd(&host->chip));
-+              nand_release(&host->chip);
-       qcom_nandc_unalloc(nandc);
-diff --git a/drivers/mtd/nand/r852.c b/drivers/mtd/nand/r852.c
-index fc9287af46140..2cfa549413952 100644
---- a/drivers/mtd/nand/r852.c
-+++ b/drivers/mtd/nand/r852.c
-@@ -656,7 +656,7 @@ static int r852_register_nand_device(struct r852_device *dev)
-       dev->card_registred = 1;
-       return 0;
- error3:
--      nand_release(mtd);
-+      nand_release(dev->chip);
- error1:
-       /* Force card redetect */
-       dev->card_detected = 0;
-@@ -675,7 +675,7 @@ static void r852_unregister_nand_device(struct r852_device *dev)
-               return;
-       device_remove_file(&mtd->dev, &dev_attr_media_type);
--      nand_release(mtd);
-+      nand_release(dev->chip);
-       r852_engine_disable(dev);
-       dev->card_registred = 0;
- }
-diff --git a/drivers/mtd/nand/s3c2410.c b/drivers/mtd/nand/s3c2410.c
-index d459c19d78de3..be9c145b743c9 100644
---- a/drivers/mtd/nand/s3c2410.c
-+++ b/drivers/mtd/nand/s3c2410.c
-@@ -768,7 +768,7 @@ static int s3c24xx_nand_remove(struct platform_device *pdev)
-               for (mtdno = 0; mtdno < info->mtd_count; mtdno++, ptr++) {
-                       pr_debug("releasing mtd %d (%p)\n", mtdno, ptr);
--                      nand_release(nand_to_mtd(&ptr->chip));
-+                      nand_release(&ptr->chip);
-               }
-       }
-diff --git a/drivers/mtd/nand/sh_flctl.c b/drivers/mtd/nand/sh_flctl.c
-index d6c013f93b8c0..31f98acdba073 100644
---- a/drivers/mtd/nand/sh_flctl.c
-+++ b/drivers/mtd/nand/sh_flctl.c
-@@ -1229,7 +1229,7 @@ static int flctl_remove(struct platform_device *pdev)
-       struct sh_flctl *flctl = platform_get_drvdata(pdev);
-       flctl_release_dma(flctl);
--      nand_release(nand_to_mtd(&flctl->chip));
-+      nand_release(&flctl->chip);
-       pm_runtime_disable(&pdev->dev);
-       return 0;
-diff --git a/drivers/mtd/nand/sharpsl.c b/drivers/mtd/nand/sharpsl.c
-index 064ca1757589a..70e28bfeb840f 100644
---- a/drivers/mtd/nand/sharpsl.c
-+++ b/drivers/mtd/nand/sharpsl.c
-@@ -192,7 +192,7 @@ static int sharpsl_nand_probe(struct platform_device *pdev)
-       return 0;
- err_add:
--      nand_release(mtd);
-+      nand_release(this);
- err_scan:
-       iounmap(sharpsl->io);
-@@ -210,7 +210,7 @@ static int sharpsl_nand_remove(struct platform_device *pdev)
-       struct sharpsl_nand *sharpsl = platform_get_drvdata(pdev);
-       /* Release resources, unregister device */
--      nand_release(nand_to_mtd(&sharpsl->chip));
-+      nand_release(&sharpsl->chip);
-       iounmap(sharpsl->io);
-diff --git a/drivers/mtd/nand/socrates_nand.c b/drivers/mtd/nand/socrates_nand.c
-index 888fd314c62a2..f633ff1ebc0ab 100644
---- a/drivers/mtd/nand/socrates_nand.c
-+++ b/drivers/mtd/nand/socrates_nand.c
-@@ -203,7 +203,7 @@ static int socrates_nand_probe(struct platform_device *ofdev)
-       if (!res)
-               return res;
--      nand_release(mtd);
-+      nand_release(nand_chip);
- out:
-       iounmap(host->io_base);
-@@ -216,9 +216,8 @@ static int socrates_nand_probe(struct platform_device *ofdev)
- static int socrates_nand_remove(struct platform_device *ofdev)
- {
-       struct socrates_nand_host *host = dev_get_drvdata(&ofdev->dev);
--      struct mtd_info *mtd = nand_to_mtd(&host->nand_chip);
--      nand_release(mtd);
-+      nand_release(&host->nand_chip);
-       iounmap(host->io_base);
-diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c
-index 886355bfa7617..ddf3e24cc2898 100644
---- a/drivers/mtd/nand/sunxi_nand.c
-+++ b/drivers/mtd/nand/sunxi_nand.c
-@@ -2108,7 +2108,7 @@ static int sunxi_nand_chip_init(struct device *dev, struct sunxi_nfc *nfc,
-       ret = mtd_device_register(mtd, NULL, 0);
-       if (ret) {
-               dev_err(dev, "failed to register mtd device: %d\n", ret);
--              nand_release(mtd);
-+              nand_release(nand);
-               return ret;
-       }
-@@ -2147,7 +2147,7 @@ static void sunxi_nand_chips_cleanup(struct sunxi_nfc *nfc)
-       while (!list_empty(&nfc->chips)) {
-               chip = list_first_entry(&nfc->chips, struct sunxi_nand_chip,
-                                       node);
--              nand_release(nand_to_mtd(&chip->nand));
-+              nand_release(&chip->nand);
-               sunxi_nand_ecc_cleanup(&chip->nand.ecc);
-               list_del(&chip->node);
-       }
-diff --git a/drivers/mtd/nand/tmio_nand.c b/drivers/mtd/nand/tmio_nand.c
-index 08b30549ec0a0..1deb5229db15d 100644
---- a/drivers/mtd/nand/tmio_nand.c
-+++ b/drivers/mtd/nand/tmio_nand.c
-@@ -446,7 +446,7 @@ static int tmio_probe(struct platform_device *dev)
-       if (!retval)
-               return retval;
--      nand_release(mtd);
-+      nand_release(nand_chip);
- err_irq:
-       tmio_hw_stop(dev, tmio);
-@@ -457,7 +457,7 @@ static int tmio_remove(struct platform_device *dev)
- {
-       struct tmio_nand *tmio = platform_get_drvdata(dev);
--      nand_release(nand_to_mtd(&tmio->chip));
-+      nand_release(&tmio->chip);
-       tmio_hw_stop(dev, tmio);
-       return 0;
- }
-diff --git a/drivers/mtd/nand/txx9ndfmc.c b/drivers/mtd/nand/txx9ndfmc.c
-index 0a14fda2e41bf..f2ba55b0a1e9d 100644
---- a/drivers/mtd/nand/txx9ndfmc.c
-+++ b/drivers/mtd/nand/txx9ndfmc.c
-@@ -390,7 +390,7 @@ static int __exit txx9ndfmc_remove(struct platform_device *dev)
-               chip = mtd_to_nand(mtd);
-               txx9_priv = nand_get_controller_data(chip);
--              nand_release(mtd);
-+              nand_release(chip);
-               kfree(txx9_priv->mtdname);
-               kfree(txx9_priv);
-       }
-diff --git a/drivers/mtd/nand/vf610_nfc.c b/drivers/mtd/nand/vf610_nfc.c
-index ddc629e3f63a6..ec004e0a94a32 100644
---- a/drivers/mtd/nand/vf610_nfc.c
-+++ b/drivers/mtd/nand/vf610_nfc.c
-@@ -795,7 +795,7 @@ static int vf610_nfc_remove(struct platform_device *pdev)
-       struct mtd_info *mtd = platform_get_drvdata(pdev);
-       struct vf610_nfc *nfc = mtd_to_nfc(mtd);
--      nand_release(mtd);
-+      nand_release(mtd_to_nand(mtd));
-       clk_disable_unprepare(nfc->clk);
-       return 0;
- }
-diff --git a/drivers/mtd/nand/xway_nand.c b/drivers/mtd/nand/xway_nand.c
-index 895101a5e6864..d374a0007960a 100644
---- a/drivers/mtd/nand/xway_nand.c
-+++ b/drivers/mtd/nand/xway_nand.c
-@@ -211,7 +211,7 @@ static int xway_nand_probe(struct platform_device *pdev)
-       err = mtd_device_register(mtd, NULL, 0);
-       if (err)
--              nand_release(mtd);
-+              nand_release(&data->chip);
-       return err;
- }
-@@ -223,7 +223,7 @@ static int xway_nand_remove(struct platform_device *pdev)
- {
-       struct xway_nand_data *data = platform_get_drvdata(pdev);
--      nand_release(nand_to_mtd(&data->chip));
-+      nand_release(&data->chip);
-       return 0;
- }
-diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
-index d8905a229f348..573e744223a24 100644
---- a/include/linux/mtd/nand.h
-+++ b/include/linux/mtd/nand.h
-@@ -24,6 +24,7 @@
- #include <linux/mtd/flashchip.h>
- #include <linux/mtd/bbm.h>
-+struct nand_chip;
- struct mtd_info;
- struct nand_flash_dev;
- struct device_node;
-@@ -39,7 +40,7 @@ int nand_scan_ident(struct mtd_info *mtd, int max_chips,
- int nand_scan_tail(struct mtd_info *mtd);
- /* Unregister the MTD device and free resources held by the NAND device */
--void nand_release(struct mtd_info *mtd);
-+void nand_release(struct nand_chip *chip);
- /* Internal helper for board drivers which need to override command function */
- void nand_wait_ready(struct mtd_info *mtd);
-@@ -219,9 +220,6 @@ enum nand_ecc_algo {
- #define NAND_CI_CELLTYPE_MSK  0x0C
- #define NAND_CI_CELLTYPE_SHIFT        2
--/* Keep gcc happy */
--struct nand_chip;
--
- /* ONFI features */
- #define ONFI_FEATURE_16_BIT_BUS               (1 << 0)
- #define ONFI_FEATURE_EXT_PARAM_PAGE   (1 << 7)
--- 
-2.25.1
-
diff --git a/queue-4.9/mtd-rawnand-plat_nand-fix-the-probe-error-path.patch b/queue-4.9/mtd-rawnand-plat_nand-fix-the-probe-error-path.patch
deleted file mode 100644 (file)
index 522a00d..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From bdef4ab6b8ca3312b0312480fad2a0d31b800e9e Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 19 May 2020 15:00:15 +0200
-Subject: mtd: rawnand: plat_nand: Fix the probe error path
-
-From: Miquel Raynal <miquel.raynal@bootlin.com>
-
-[ Upstream commit 5284024b4dac5e94f7f374ca905c7580dbc455e9 ]
-
-nand_release() is supposed be called after MTD device registration.
-Here, only nand_scan() happened, so use nand_cleanup() instead.
-
-There is no real Fixes tag applying here as the use of nand_release()
-in this driver predates by far the introduction of nand_cleanup() in
-commit d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-which makes this change possible, hence pointing it as the commit to
-fix for backporting purposes, even if this commit is not introducing
-any bug.
-
-Fixes: d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-43-miquel.raynal@bootlin.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mtd/nand/plat_nand.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/nand/plat_nand.c b/drivers/mtd/nand/plat_nand.c
-index 245efb0f83e26..ae2b3c0804cec 100644
---- a/drivers/mtd/nand/plat_nand.c
-+++ b/drivers/mtd/nand/plat_nand.c
-@@ -100,7 +100,7 @@ static int plat_nand_probe(struct platform_device *pdev)
-       if (!err)
-               return err;
--      nand_release(&data->chip);
-+      nand_cleanup(&data->chip);
- out:
-       if (pdata->ctrl.remove)
-               pdata->ctrl.remove(pdev);
--- 
-2.25.1
-
diff --git a/queue-4.9/mtd-rawnand-sharpsl-fix-the-probe-error-path.patch b/queue-4.9/mtd-rawnand-sharpsl-fix-the-probe-error-path.patch
deleted file mode 100644 (file)
index df324cc..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-From 5fc5389153aa5b79a3148e9b0d4d430e76487bef Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 19 May 2020 15:00:21 +0200
-Subject: mtd: rawnand: sharpsl: Fix the probe error path
-
-From: Miquel Raynal <miquel.raynal@bootlin.com>
-
-[ Upstream commit 0f44b3275b3798ccb97a2f51ac85871c30d6fbbc ]
-
-nand_release() is supposed be called after MTD device registration.
-Here, only nand_scan() happened, so use nand_cleanup() instead.
-
-There is no Fixes tag applying here as the use of nand_release()
-in this driver predates by far the introduction of nand_cleanup() in
-commit d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-which makes this change possible. However, pointing this commit as the
-culprit for backporting purposes makes sense.
-
-Fixes: d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-49-miquel.raynal@bootlin.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mtd/nand/sharpsl.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/nand/sharpsl.c b/drivers/mtd/nand/sharpsl.c
-index 70e28bfeb840f..661b4928e0fcf 100644
---- a/drivers/mtd/nand/sharpsl.c
-+++ b/drivers/mtd/nand/sharpsl.c
-@@ -192,7 +192,7 @@ static int sharpsl_nand_probe(struct platform_device *pdev)
-       return 0;
- err_add:
--      nand_release(this);
-+      nand_cleanup(this);
- err_scan:
-       iounmap(sharpsl->io);
--- 
-2.25.1
-
diff --git a/queue-4.9/mtd-rawnand-socrates-fix-the-probe-error-path.patch b/queue-4.9/mtd-rawnand-socrates-fix-the-probe-error-path.patch
deleted file mode 100644 (file)
index b3cc119..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From faac8006c03473af9f515fb26e9ec59d5028ecc5 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 19 May 2020 15:00:23 +0200
-Subject: mtd: rawnand: socrates: Fix the probe error path
-
-From: Miquel Raynal <miquel.raynal@bootlin.com>
-
-[ Upstream commit 9c6c2e5cc77119ce0dacb4f9feedb73ce0354421 ]
-
-nand_release() is supposed be called after MTD device registration.
-Here, only nand_scan() happened, so use nand_cleanup() instead.
-
-There is no real Fixes tag applying here as the use of nand_release()
-in this driver predates by far the introduction of nand_cleanup() in
-commit d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-which makes this change possible. However, pointing this commit as the
-culprit for backporting purposes makes sense even if this commit is not
-introducing any bug.
-
-Fixes: d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-51-miquel.raynal@bootlin.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mtd/nand/socrates_nand.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/nand/socrates_nand.c b/drivers/mtd/nand/socrates_nand.c
-index f633ff1ebc0ab..957d9597c4847 100644
---- a/drivers/mtd/nand/socrates_nand.c
-+++ b/drivers/mtd/nand/socrates_nand.c
-@@ -203,7 +203,7 @@ static int socrates_nand_probe(struct platform_device *ofdev)
-       if (!res)
-               return res;
--      nand_release(nand_chip);
-+      nand_cleanup(nand_chip);
- out:
-       iounmap(host->io_base);
--- 
-2.25.1
-
diff --git a/queue-4.9/mtd-rawnand-tmio-fix-the-probe-error-path.patch b/queue-4.9/mtd-rawnand-tmio-fix-the-probe-error-path.patch
deleted file mode 100644 (file)
index f59b5ef..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From c69d59f2561388cc090fd06ef01ab4bb8d014bd6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 19 May 2020 15:00:29 +0200
-Subject: mtd: rawnand: tmio: Fix the probe error path
-
-From: Miquel Raynal <miquel.raynal@bootlin.com>
-
-[ Upstream commit 75e9a330a9bd48f97a55a08000236084fe3dae56 ]
-
-nand_release() is supposed be called after MTD device registration.
-Here, only nand_scan() happened, so use nand_cleanup() instead.
-
-There is no real Fixes tag applying here as the use of nand_release()
-in this driver predates by far the introduction of nand_cleanup() in
-commit d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-which makes this change possible. However, pointing this commit as the
-culprit for backporting purposes makes sense even if this commit is not
-introducing any bug.
-
-Fixes: d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-57-miquel.raynal@bootlin.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mtd/nand/tmio_nand.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/nand/tmio_nand.c b/drivers/mtd/nand/tmio_nand.c
-index 1deb5229db15d..d07c729f5b9b8 100644
---- a/drivers/mtd/nand/tmio_nand.c
-+++ b/drivers/mtd/nand/tmio_nand.c
-@@ -446,7 +446,7 @@ static int tmio_probe(struct platform_device *dev)
-       if (!retval)
-               return retval;
--      nand_release(nand_chip);
-+      nand_cleanup(nand_chip);
- err_irq:
-       tmio_hw_stop(dev, tmio);
--- 
-2.25.1
-
diff --git a/queue-4.9/mtd-rawnand-xway-fix-the-probe-error-path.patch b/queue-4.9/mtd-rawnand-xway-fix-the-probe-error-path.patch
deleted file mode 100644 (file)
index 9b8b16a..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-From 9350cc5ddcfa3bc1623b02b01dda26a48daf1b55 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <sashal@kernel.org>
-Date: Tue, 19 May 2020 15:00:33 +0200
-Subject: mtd: rawnand: xway: Fix the probe error path
-
-From: Miquel Raynal <miquel.raynal@bootlin.com>
-
-[ Upstream commit 34531be5e804a8e1abf314a6c3a19fe342e4a154 ]
-
-nand_release() is supposed be called after MTD device registration.
-Here, only nand_scan() happened, so use nand_cleanup() instead.
-
-There is no real Fixes tag applying here as the use of nand_release()
-in this driver predates the introduction of nand_cleanup() in
-commit d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-which makes this change possible. However, pointing this commit as the
-culprit for backporting purposes makes sense even if this commit is not
-introducing any bug.
-
-Fixes: d44154f969a4 ("mtd: nand: Provide nand_cleanup() function to free NAND related resources")
-Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
-Cc: stable@vger.kernel.org
-Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-61-miquel.raynal@bootlin.com
-Signed-off-by: Sasha Levin <sashal@kernel.org>
----
- drivers/mtd/nand/xway_nand.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/nand/xway_nand.c b/drivers/mtd/nand/xway_nand.c
-index d374a0007960a..3d51b8fc5aafe 100644
---- a/drivers/mtd/nand/xway_nand.c
-+++ b/drivers/mtd/nand/xway_nand.c
-@@ -211,7 +211,7 @@ static int xway_nand_probe(struct platform_device *pdev)
-       err = mtd_device_register(mtd, NULL, 0);
-       if (err)
--              nand_release(&data->chip);
-+              nand_cleanup(&data->chip);
-       return err;
- }
--- 
-2.25.1
-
index bee4411dc46f7f7b49421c2d8efd2adf2a333010..d1a0d6cd60d821b8287b826a3dff06d87b282cd5 100644 (file)
@@ -87,16 +87,6 @@ ext4-fix-partial-cluster-initialization-when-splitti.patch
 drm-dp_mst-increase-act-retry-timeout-to-3s.patch
 x86-boot-compressed-relax-sed-symbol-type-regex-for-.patch
 block-nr_sects_write-disable-preemption-on-seqcount-.patch
-mtd-rawnand-diskonchip-fix-the-probe-error-path.patch
-mtd-rawnand-pass-a-nand_chip-object-to-nand_release.patch
-mtd-rawnand-diskonchip-fix-the-probe-error-path.patch-32722
-mtd-rawnand-sharpsl-fix-the-probe-error-path.patch
-mtd-rawnand-xway-fix-the-probe-error-path.patch
-mtd-rawnand-orion-fix-the-probe-error-path.patch
-mtd-rawnand-socrates-fix-the-probe-error-path.patch
-mtd-rawnand-plat_nand-fix-the-probe-error-path.patch
-mtd-rawnand-mtk-fix-the-probe-error-path.patch
-mtd-rawnand-tmio-fix-the-probe-error-path.patch
 s390-fix-syscall_get_error-for-compat-processes.patch
 drm-i915-whitelist-context-local-timestamp-in-the-gen9-cmdparser.patch
 crypto-algboss-don-t-wait-during-notifier-callback.patch