From patchwork Fri Dec 20 07:35:00 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jingoo Han X-Patchwork-Id: 303929 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from casper.infradead.org (unknown [IPv6:2001:770:15f::2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id DCBCE2C020A for ; Fri, 20 Dec 2013 18:35:26 +1100 (EST) Received: from merlin.infradead.org ([2001:4978:20e::2]) by casper.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1Vtuc6-0007j1-Cf; Fri, 20 Dec 2013 07:35:14 +0000 Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.80.1 #2 (Red Hat Linux)) id 1Vtuc0-00019p-Eh; Fri, 20 Dec 2013 07:35:08 +0000 Received: from mailout2.samsung.com ([203.254.224.25]) by merlin.infradead.org with esmtps (Exim 4.80.1 #2 (Red Hat Linux)) id 1Vtubu-00017A-NF for linux-mtd@lists.infradead.org; Fri, 20 Dec 2013 07:35:03 +0000 Received: from epcpsbgr4.samsung.com (u144.gpu120.samsung.co.kr [203.254.230.144]) by mailout2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0MY300NR8H2C3320@mailout2.samsung.com> for linux-mtd@lists.infradead.org; Fri, 20 Dec 2013 16:35:00 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [203.254.230.48]) by epcpsbgr4.samsung.com (EPCPMTA) with SMTP id B4.21.10364.423F3B25; Fri, 20 Dec 2013 16:35:00 +0900 (KST) X-AuditID: cbfee690-b7f266d00000287c-cc-52b3f324a202 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 5C.45.28157.423F3B25; Fri, 20 Dec 2013 16:35:00 +0900 (KST) Received: from DOJG1HAN03 ([12.23.120.99]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0MY3006K6H2C2Q90@mmp2.samsung.com>; Fri, 20 Dec 2013 16:35:00 +0900 (KST) From: Jingoo Han To: 'Brian Norris' References: <000d01cefd55$7e48a2a0$7ad9e7e0$%han@samsung.com> In-reply-to: <000d01cefd55$7e48a2a0$7ad9e7e0$%han@samsung.com> Subject: [PATCH V2 8/8] mtd: tmio_nand: Use devm_*() functions Date: Fri, 20 Dec 2013 16:35:00 +0900 Message-id: <001501cefd55$fd5a8ae0$f80fa0a0$%han@samsung.com> MIME-version: 1.0 X-Mailer: Microsoft Office Outlook 12.0 Thread-index: Ac79VX4zfOEDhlMqR4WYmWacubn25QAAGtbg Content-language: ko x-cr-hashedpuzzle: CBKX KswX Ld8u Lso9 Lu59 Lwfp Oo/N WT4K Ylsm aRm6 hSIB mGao uVBz w32w 4umO 8NnN; 5; YwBvAG0AcAB1AHQAZQByAHMAZgBvAHIAcABlAGEAYwBlAEAAZwBtAGEAaQBsAC4AYwBvAG0AOwBkAHcAbQB3ADIAQABpAG4AZgByAGEAZABlAGEAZAAuAG8AcgBnADsAaQBhAG4ALgBtAG8AbAB0AG8AbgBAAGMAbwBkAGUAdABoAGkAbgBrAC4AYwBvAC4AdQBrADsAagBnADEALgBoAGEAbgBAAHMAYQBtAHMAdQBuAGcALgBjAG8AbQA7AGwAaQBuAHUAeAAtAG0AdABkAEAAbABpAHMAdABzAC4AaQBuAGYAcgBhAGQAZQBhAGQALgBvAHIAZwA=; Sosha1_v1; 7; {3EE7D243-8A74-4355-A77B-E25549B5A0D3}; agBnADEALgBoAGEAbgBAAHMAYQBtAHMAdQBuAGcALgBjAG8AbQA=; Fri, 20 Dec 2013 07:34:51 GMT; WwBQAEEAVABDAEgAIABWADIAIAA4AC8AOABdACAAbQB0AGQAOgAgAHQAbQBpAG8AXwBuAGEAbgBkADoAIABVAHMAZQAgAGQAZQB2AG0AXwAqACgAKQAgAGYAdQBuAGMAdABpAG8AbgBzAA== x-cr-puzzleid: {3EE7D243-8A74-4355-A77B-E25549B5A0D3} X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrDIsWRmVeSWpSXmKPExsVy+t8zA12Vz5uDDKa9Vbc4cmEts8XElZOZ Le71rWG1uLzwEqvF7qZl7A6sHs9eTmby2DnrLrvH5hVaHpuX1Hv0bVnFGMAaxWWTkpqTWZZa pG+XwJVxetlWxoLL4hUXN/E0MPYJdzFyckgImEjMu9vCBGGLSVy4t54NxBYSWMYo8fG6KUzN pGn7GbsYuYDi0xkl1v9fClX0i1Fi6kIREJtNQE3iy5fD7F2MHBwiAgYSP95kgtQzC8xmlHjw ZSIzRL2txLmzj9hBbE4BO4llS5exgNjCQPbH/ceYQHpZBFQl9u+NAQnzApWfOreYBcIWlPgx +R6YzSygJbF+53EmCFteYvOat8wgrRIC6hKP/uqChEUEjCT6v09jhigRkdj34h3Y+RICF1gl Ds5ZxQrxl6nEvTmdLBCJv+wSDzZMB7uNRUBA4tvkQywQQ2UlNh1ghqiXlDi44gbLBEapWUhO moXkpFlITpqFZPcCRpZVjKKpBckFxUnpRSZ6xYm5xaV56XrJ+bmbGCExPWEH470D1ocYk4HW T2SWEk3OB6aEvJJ4Q2MzIwtTE1NjI3NLM9KElcR51R4lBQkJpCeWpGanphakFsUXleakFh9i ZOLglGpgrA1NWH//QbBb+slbR88cfeJgefOO2joLR4b2J4u5bD/paCy8pDC/b2HGTq6+Q98P dU22cnoYljvbx/d1R8vESVeWzIr1PhVaLbnsayIr39cvWs6Lp2X0rzB6KHd2Sqzpo5KoYqHL k0qlNp3unJh7rSZ3l63Wzdtn63+xzd3iXSi36prx/azbokosxRmJhlrMRcWJAOiu+sf/AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrFKsWRmVeSWpSXmKPExsVy+t9jQV2Vz5uDDJp2KVscubCW2WLiysnM Fvf61rBaXF54idVid9MydgdWj2cvJzN57Jx1l91j8wotj81L6j36tqxiDGCNamC0yUhNTEkt UkjNS85PycxLt1XyDo53jjc1MzDUNbS0MFdSyEvMTbVVcvEJ0HXLzAFarqRQlphTChQKSCwu VtK3wzQhNMRN1wKmMULXNyQIrsfIAA0krGPMOL1sK2PBZfGKi5t4Ghj7hLsYOTkkBEwkJk3b zwhhi0lcuLeerYuRi0NIYDqjxPr/S9lAEkICvxglpi4UAbHZBNQkvnw5zN7FyMEhImAg8eNN Jkg9s8BsRokHXyYyQ9TbSpw7+4gdxOYUsJNYtnQZC4gtDGR/3H+MCaSXRUBVYv/eGJAwL1D5 qXOLWSBsQYkfk++B2cwCWhLrdx5ngrDlJTavecsM0iohoC7x6K8uSFhEwEii//s0ZogSEYl9 L94xgpwjIXCBVeLgnFWsEH+ZStyb08kygVFkFpIVs5CsmIVkxSwksxYwsqxiFE0tSC4oTkrP NdIrTswtLs1L10vOz93ECE4Zz6R3MK5qsDjEKMDBqMTDW6C/OUiINbGsuDL3EKMEB7OSCC/H c6AQb0piZVVqUX58UWlOavEhxmRgAExklhJNzgems7ySeENjEzMjSyMzCyMTc3PShJXEeQ+2 WgcKCaQnlqRmp6YWpBbBbGHi4JRqYAw5yuCa89KS78OrhXnd9oHBTDqXRAPXNO46em6tzuxD daxuP0pEz70/kPIizcD0+P+OCCXOqScst1q1zs4ysPzA/Xe+ZM39D1pMT5KvTdOVPmHFfPnV qvzXX2crVHAzFnAUvPi2tE9t1fXzXRGzov+cutUpkTNH6f5Da6et0X31DDN2HRUI+6nEUpyR aKjFXFScCADovnV+XQMAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20131220_023503_034200_48597F79 X-CRM114-Status: UNSURE ( 9.52 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -7.4 (-------) X-Spam-Report: SpamAssassin version 3.3.2 on merlin.infradead.org summary: Content analysis details: (-7.4 points) pts rule name description ---- ---------------------- -------------------------------------------------- -5.0 RCVD_IN_DNSWL_HI RBL: Sender listed at http://www.dnswl.org/, high trust [203.254.224.25 listed in list.dnswl.org] -0.0 SPF_HELO_PASS SPF: HELO matches SPF record -0.5 RP_MATCHES_RCVD Envelope sender domain matches handover relay domain -1.9 BAYES_00 BODY: Bayes spam probability is 0 to 1% [score: 0.0000] Cc: linux-mtd@lists.infradead.org, 'Jingoo Han' , 'David Woodhouse' , 'Ian Molton' X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-mtd" Errors-To: linux-mtd-bounces+incoming=patchwork.ozlabs.org@lists.infradead.org Use devm_*() functions to make cleanup paths simpler. Signed-off-by: Jingoo Han --- No change since v1. drivers/mtd/nand/tmio_nand.c | 46 ++++++++++++------------------------------ 1 file changed, 13 insertions(+), 33 deletions(-) diff --git a/drivers/mtd/nand/tmio_nand.c b/drivers/mtd/nand/tmio_nand.c index a3747c9..fb8fd35 100644 --- a/drivers/mtd/nand/tmio_nand.c +++ b/drivers/mtd/nand/tmio_nand.c @@ -371,11 +371,9 @@ static int tmio_probe(struct platform_device *dev) if (data == NULL) dev_warn(&dev->dev, "NULL platform data!\n"); - tmio = kzalloc(sizeof *tmio, GFP_KERNEL); - if (!tmio) { - retval = -ENOMEM; - goto err_kzalloc; - } + tmio = devm_kzalloc(&dev->dev, sizeof(*tmio), GFP_KERNEL); + if (!tmio) + return -ENOMEM; tmio->dev = dev; @@ -385,22 +383,18 @@ static int tmio_probe(struct platform_device *dev) mtd->priv = nand_chip; mtd->name = "tmio-nand"; - tmio->ccr = ioremap(ccr->start, resource_size(ccr)); - if (!tmio->ccr) { - retval = -EIO; - goto err_iomap_ccr; - } + tmio->ccr = devm_ioremap(&dev->dev, ccr->start, resource_size(ccr)); + if (!tmio->ccr) + return -EIO; tmio->fcr_base = fcr->start & 0xfffff; - tmio->fcr = ioremap(fcr->start, resource_size(fcr)); - if (!tmio->fcr) { - retval = -EIO; - goto err_iomap_fcr; - } + tmio->fcr = devm_ioremap(&dev->dev, fcr->start, resource_size(fcr)); + if (!tmio->fcr) + return -EIO; retval = tmio_hw_init(dev, tmio); if (retval) - goto err_hwinit; + return retval; /* Set address of NAND IO lines */ nand_chip->IO_ADDR_R = tmio->fcr; @@ -428,7 +422,8 @@ static int tmio_probe(struct platform_device *dev) /* 15 us command delay time */ nand_chip->chip_delay = 15; - retval = request_irq(irq, &tmio_irq, 0, dev_name(&dev->dev), tmio); + retval = devm_request_irq(&dev->dev, irq, &tmio_irq, 0, + dev_name(&dev->dev), tmio); if (retval) { dev_err(&dev->dev, "request_irq error %d\n", retval); goto err_irq; @@ -440,7 +435,7 @@ static int tmio_probe(struct platform_device *dev) /* Scan to find existence of the device */ if (nand_scan(mtd, 1)) { retval = -ENODEV; - goto err_scan; + goto err_irq; } /* Register the partitions */ retval = mtd_device_parse_register(mtd, NULL, NULL, @@ -451,18 +446,8 @@ static int tmio_probe(struct platform_device *dev) nand_release(mtd); -err_scan: - if (tmio->irq) - free_irq(tmio->irq, tmio); err_irq: tmio_hw_stop(dev, tmio); -err_hwinit: - iounmap(tmio->fcr); -err_iomap_fcr: - iounmap(tmio->ccr); -err_iomap_ccr: - kfree(tmio); -err_kzalloc: return retval; } @@ -471,12 +456,7 @@ static int tmio_remove(struct platform_device *dev) struct tmio_nand *tmio = platform_get_drvdata(dev); nand_release(&tmio->mtd); - if (tmio->irq) - free_irq(tmio->irq, tmio); tmio_hw_stop(dev, tmio); - iounmap(tmio->fcr); - iounmap(tmio->ccr); - kfree(tmio); return 0; }