From 608ad4b6932f72995144bc72a31b1e0843a5bb28 Mon Sep 17 00:00:00 2001 From: Luka Perkov Date: Tue, 11 Feb 2014 02:07:41 +0000 Subject: mvebu: backport mainline patches from kernel 3.12 This is a backport of the patches accepted to the Linux mainline related to mvebu SoC (Armada XP and Armada 370) between Linux v3.11, and Linux v3.12. This work mainly covers: * Ground work for sharing the pxa nand driver(drivers/mtd/nand/pxa3xx_nand.c) between the PXA family,and the Armada family. * Further updates to the mvebu MBus. * Work and ground work for enabling MSI on the Armada family. * some phy / mdio bus initialization related work. * Device tree binding documentation update. Signed-off-by: Seif Mazareeb CC: Luka Perkov git-svn-id: svn://svn.openwrt.org/openwrt/trunk@39565 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- .../0101-mtd-nand-pxa3xx-Use-devm_kzalloc.patch | 60 ++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 target/linux/mvebu/patches-3.10/0101-mtd-nand-pxa3xx-Use-devm_kzalloc.patch (limited to 'target/linux/mvebu/patches-3.10/0101-mtd-nand-pxa3xx-Use-devm_kzalloc.patch') diff --git a/target/linux/mvebu/patches-3.10/0101-mtd-nand-pxa3xx-Use-devm_kzalloc.patch b/target/linux/mvebu/patches-3.10/0101-mtd-nand-pxa3xx-Use-devm_kzalloc.patch new file mode 100644 index 0000000000..4ff71f0fb2 --- /dev/null +++ b/target/linux/mvebu/patches-3.10/0101-mtd-nand-pxa3xx-Use-devm_kzalloc.patch @@ -0,0 +1,60 @@ +From 271ef48cf11b86ab666582051fed3bdb13681e64 Mon Sep 17 00:00:00 2001 +From: Ezequiel Garcia +Date: Wed, 17 Apr 2013 13:38:09 -0300 +Subject: [PATCH 101/203] mtd: nand: pxa3xx: Use devm_kzalloc + +Replace regular kzalloc with managed devm_kzalloc +which simplifies the error path. + +Signed-off-by: Ezequiel Garcia +Signed-off-by: Artem Bityutskiy +Signed-off-by: David Woodhouse +--- + drivers/mtd/nand/pxa3xx_nand.c | 14 ++++---------- + 1 file changed, 4 insertions(+), 10 deletions(-) + +--- a/drivers/mtd/nand/pxa3xx_nand.c ++++ b/drivers/mtd/nand/pxa3xx_nand.c +@@ -1035,12 +1035,10 @@ static int alloc_nand_resource(struct pl + int ret, irq, cs; + + pdata = pdev->dev.platform_data; +- info = kzalloc(sizeof(*info) + (sizeof(*mtd) + +- sizeof(*host)) * pdata->num_cs, GFP_KERNEL); +- if (!info) { +- dev_err(&pdev->dev, "failed to allocate memory\n"); ++ info = devm_kzalloc(&pdev->dev, sizeof(*info) + (sizeof(*mtd) + ++ sizeof(*host)) * pdata->num_cs, GFP_KERNEL); ++ if (!info) + return -ENOMEM; +- } + + info->pdev = pdev; + for (cs = 0; cs < pdata->num_cs; cs++) { +@@ -1072,8 +1070,7 @@ static int alloc_nand_resource(struct pl + info->clk = clk_get(&pdev->dev, NULL); + if (IS_ERR(info->clk)) { + dev_err(&pdev->dev, "failed to get nand clock\n"); +- ret = PTR_ERR(info->clk); +- goto fail_free_mtd; ++ return PTR_ERR(info->clk); + } + clk_enable(info->clk); + +@@ -1165,8 +1162,6 @@ fail_free_res: + fail_put_clk: + clk_disable(info->clk); + clk_put(info->clk); +-fail_free_mtd: +- kfree(info); + return ret; + } + +@@ -1202,7 +1197,6 @@ static int pxa3xx_nand_remove(struct pla + + for (cs = 0; cs < pdata->num_cs; cs++) + nand_release(info->host[cs]->mtd); +- kfree(info); + return 0; + } + -- cgit v1.2.3