From: Greg Kroah-Hartman Date: Tue, 23 Jun 2020 20:05:29 +0000 (+0200) Subject: drop a bunch of mtd patches from 4.9 as something went wrong. X-Git-Tag: v5.7.6~4 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b756124ae79cf86a09f2fe27f420505007ad4206;p=thirdparty%2Fkernel%2Fstable-queue.git drop a bunch of mtd patches from 4.9 as something went wrong. --- 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 index d40f7c231a9..00000000000 --- a/queue-4.9/mtd-rawnand-diskonchip-fix-the-probe-error-path.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 96d93a4927a95989c4362d76a92b8267dc3772da Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 19 May 2020 14:59:45 +0200 -Subject: mtd: rawnand: diskonchip: Fix the probe error path - -From: Miquel Raynal - -[ 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 -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-13-miquel.raynal@bootlin.com -Signed-off-by: Sasha Levin ---- - 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 index d8a0aaab6a2..00000000000 --- a/queue-4.9/mtd-rawnand-diskonchip-fix-the-probe-error-path.patch-32722 +++ /dev/null @@ -1,47 +0,0 @@ -From 0662e19061712624e62bb9550dff03604da468f7 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 19 May 2020 14:59:45 +0200 -Subject: mtd: rawnand: diskonchip: Fix the probe error path - -From: Miquel Raynal - -[ 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 -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-13-miquel.raynal@bootlin.com -Signed-off-by: Sasha Levin ---- - 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 index bcaf660bf9e..00000000000 --- a/queue-4.9/mtd-rawnand-mtk-fix-the-probe-error-path.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 45e7b92c39a202a2b7c22572762f2f03b9b71a7c Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 19 May 2020 15:00:00 +0200 -Subject: mtd: rawnand: mtk: Fix the probe error path - -From: Miquel Raynal - -[ 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 -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-28-miquel.raynal@bootlin.com -Signed-off-by: Sasha Levin ---- - 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 index 48358acd99a..00000000000 --- a/queue-4.9/mtd-rawnand-orion-fix-the-probe-error-path.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 0ffeae0b263e279a386f4402b357e8297384c47c Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 19 May 2020 15:00:06 +0200 -Subject: mtd: rawnand: orion: Fix the probe error path - -From: Miquel Raynal - -[ 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 -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-34-miquel.raynal@bootlin.com -Signed-off-by: Sasha Levin ---- - 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 index 6e27983c903..00000000000 --- a/queue-4.9/mtd-rawnand-pass-a-nand_chip-object-to-nand_release.patch +++ /dev/null @@ -1,815 +0,0 @@ -From 8fb2dccd2de9eadc5c3d6bb74815022facd7655d Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 6 Sep 2018 14:05:15 +0200 -Subject: mtd: rawnand: Pass a nand_chip object to nand_release() - -From: Boris Brezillon - -[ 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 -Signed-off-by: Miquel Raynal -Signed-off-by: Sasha Levin ---- - 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 - #include - -+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 index 522a00d1d1d..00000000000 --- a/queue-4.9/mtd-rawnand-plat_nand-fix-the-probe-error-path.patch +++ /dev/null @@ -1,44 +0,0 @@ -From bdef4ab6b8ca3312b0312480fad2a0d31b800e9e Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 19 May 2020 15:00:15 +0200 -Subject: mtd: rawnand: plat_nand: Fix the probe error path - -From: Miquel Raynal - -[ 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 -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-43-miquel.raynal@bootlin.com -Signed-off-by: Sasha Levin ---- - 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 index df324cc2e74..00000000000 --- a/queue-4.9/mtd-rawnand-sharpsl-fix-the-probe-error-path.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 5fc5389153aa5b79a3148e9b0d4d430e76487bef Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 19 May 2020 15:00:21 +0200 -Subject: mtd: rawnand: sharpsl: Fix the probe error path - -From: Miquel Raynal - -[ 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 -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-49-miquel.raynal@bootlin.com -Signed-off-by: Sasha Levin ---- - 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 index b3cc119750d..00000000000 --- a/queue-4.9/mtd-rawnand-socrates-fix-the-probe-error-path.patch +++ /dev/null @@ -1,44 +0,0 @@ -From faac8006c03473af9f515fb26e9ec59d5028ecc5 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 19 May 2020 15:00:23 +0200 -Subject: mtd: rawnand: socrates: Fix the probe error path - -From: Miquel Raynal - -[ 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 -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-51-miquel.raynal@bootlin.com -Signed-off-by: Sasha Levin ---- - 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 index f59b5ef80b3..00000000000 --- a/queue-4.9/mtd-rawnand-tmio-fix-the-probe-error-path.patch +++ /dev/null @@ -1,44 +0,0 @@ -From c69d59f2561388cc090fd06ef01ab4bb8d014bd6 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 19 May 2020 15:00:29 +0200 -Subject: mtd: rawnand: tmio: Fix the probe error path - -From: Miquel Raynal - -[ 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 -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-57-miquel.raynal@bootlin.com -Signed-off-by: Sasha Levin ---- - 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 index 9b8b16a4658..00000000000 --- a/queue-4.9/mtd-rawnand-xway-fix-the-probe-error-path.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 9350cc5ddcfa3bc1623b02b01dda26a48daf1b55 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 19 May 2020 15:00:33 +0200 -Subject: mtd: rawnand: xway: Fix the probe error path - -From: Miquel Raynal - -[ 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 -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/linux-mtd/20200519130035.1883-61-miquel.raynal@bootlin.com -Signed-off-by: Sasha Levin ---- - 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 - diff --git a/queue-4.9/series b/queue-4.9/series index bee4411dc46..d1a0d6cd60d 100644 --- a/queue-4.9/series +++ b/queue-4.9/series @@ -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