Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965267AbcCOJMP (ORCPT ); Tue, 15 Mar 2016 05:12:15 -0400 Received: from arroyo.ext.ti.com ([192.94.94.40]:59537 "EHLO arroyo.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751869AbcCOJMH (ORCPT ); Tue, 15 Mar 2016 05:12:07 -0400 Subject: Re: [PATCH v2 2/5] mmc: davinci: fix unwinding in probe To: David Lechner References: <56E6BF7E.7020401@ti.com> <1457996081-21975-1-git-send-email-david@lechnology.com> <1457996081-21975-3-git-send-email-david@lechnology.com> CC: , , , , From: Sekhar Nori Message-ID: <56E7D198.4050900@ti.com> Date: Tue, 15 Mar 2016 14:40:48 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 MIME-Version: 1.0 In-Reply-To: <1457996081-21975-3-git-send-email-david@lechnology.com> Content-Type: text/plain; charset="windows-1252" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1831 Lines: 59 On Tuesday 15 March 2016 04:24 AM, David Lechner wrote: > Unwiding from an error in davinci_mmcsd_probe was a mess. Some errors were > not handled and not all paths unwound correctly. Also using devm_ where > possible to simplify things. > > Signed-off-by: David Lechner > --- > > v2 changes: use devm_ where possible > > drivers/mmc/host/davinci_mmc.c | 93 ++++++++++++++++-------------------------- > 1 file changed, 35 insertions(+), 58 deletions(-) > > diff --git a/drivers/mmc/host/davinci_mmc.c b/drivers/mmc/host/davinci_mmc.c > index a294d261..6dd9562 100644 > --- a/drivers/mmc/host/davinci_mmc.c > +++ b/drivers/mmc/host/davinci_mmc.c > @@ -1223,7 +1223,7 @@ static int __init davinci_mmcsd_probe(struct platform_device *pdev) > struct mmc_davinci_host *host = NULL; > struct mmc_host *mmc = NULL; > struct resource *r, *mem = NULL; > - int ret = 0, irq = 0; > + int ret, irq; > size_t mem_size; > const struct platform_device_id *id_entry; > > @@ -1233,22 +1233,20 @@ static int __init davinci_mmcsd_probe(struct platform_device *pdev) > return -ENOENT; > } > > - ret = -ENODEV; > r = platform_get_resource(pdev, IORESOURCE_MEM, 0); > irq = platform_get_irq(pdev, 0); > if (!r || irq == NO_IRQ) > - goto out; > + return -ENODEV; > > - ret = -EBUSY; > mem_size = resource_size(r); > - mem = request_mem_region(r->start, mem_size, pdev->name); > + mem = devm_request_mem_region(&pdev->dev, r->start, mem_size, > + pdev->name); > if (!mem) > - goto out; > + return -EBUSY; > > - ret = -ENOMEM; > mmc = mmc_alloc_host(sizeof(struct mmc_davinci_host), &pdev->dev); > if (!mmc) > - goto out; > + ret = -ENOMEM; This should be 'return -ENOMEM' you dont want to proceed further if this fails. Other than that, looks fine to me. Regards, Sekhar