Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752061Ab2JNJZU (ORCPT ); Sun, 14 Oct 2012 05:25:20 -0400 Received: from comal.ext.ti.com ([198.47.26.152]:53114 "EHLO comal.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751537Ab2JNJZT (ORCPT ); Sun, 14 Oct 2012 05:25:19 -0400 Message-ID: <507A84CA.3080406@ti.com> Date: Sun, 14 Oct 2012 14:54:26 +0530 From: Sekhar Nori User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:15.0) Gecko/20120907 Thunderbird/15.0.1 MIME-Version: 1.0 To: Hannu Heikkinen CC: , , , Subject: Re: [PATCH] rtc: davinci: clean up probe/remove routines References: <1350166417-23434-1-git-send-email-hannuxx@iki.fi> In-Reply-To: <1350166417-23434-1-git-send-email-hannuxx@iki.fi> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2645 Lines: 79 On 10/14/2012 3:43 AM, Hannu Heikkinen wrote: > Use the devres managed resource functions in the probe routine. > Also affects the remove routine where the previously used free and > release functions are not needed. > > The devm_* functions eliminate the need for manual resource releasing and > simplify error handling. Resources allocated by devm_* are freed > automatically on driver detach. > > Signed-off-by: Hannu Heikkinen > --- > drivers/rtc/rtc-davinci.c | 56 +++++++++++++---------------------------------- > 1 file changed, 15 insertions(+), 41 deletions(-) > > diff --git a/drivers/rtc/rtc-davinci.c b/drivers/rtc/rtc-davinci.c > index 14c2109..ffb09c2 100644 > --- a/drivers/rtc/rtc-davinci.c > +++ b/drivers/rtc/rtc-davinci.c > @@ -119,8 +119,6 @@ static DEFINE_SPINLOCK(davinci_rtc_lock); > struct davinci_rtc { > struct rtc_device *rtc; > void __iomem *base; > - resource_size_t pbase; > - size_t base_size; > int irq; > }; > > @@ -482,22 +480,16 @@ static int __init davinci_rtc_probe(struct platform_device *pdev) > { > struct device *dev = &pdev->dev; > struct davinci_rtc *davinci_rtc; > - struct resource *res, *mem; > + struct resource *res; > int ret = 0; > > - davinci_rtc = kzalloc(sizeof(struct davinci_rtc), GFP_KERNEL); > + davinci_rtc = devm_kzalloc(&pdev->dev, sizeof(struct tegra_rtc_info), This line causes a build breakage because of wrong structure name. > + GFP_KERNEL); > if (!davinci_rtc) { > dev_dbg(dev, "could not allocate memory for private data\n"); > return -ENOMEM; > } > > - davinci_rtc->irq = platform_get_irq(pdev, 0); > - if (davinci_rtc->irq < 0) { > - dev_err(dev, "no RTC irq\n"); > - ret = davinci_rtc->irq; > - goto fail1; > - } > - > res = platform_get_resource(pdev, IORESOURCE_MEM, 0); > if (!res) { > dev_err(dev, "no mem resource\n"); > @@ -505,23 +497,16 @@ static int __init davinci_rtc_probe(struct platform_device *pdev) > goto fail1; This goto target does not exist anymore after this patch. This causes build breakage too. I was not able to test this on a DM365 EVM though. hwclock returned with this error: select() to /dev/rtc to wait for clock tick timed out but this is not related to this patch since the same error occurs even without this patch. May something to do with the particular board I used, need to debug and check. Thanks, Sekhar -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/