Re: [PATCH v2] rtc: davinci: clean up probe/remove routines

From: Hannu Heikkinen
Date: Sun Oct 14 2012 - 09:22:40 EST


On 14/10/12 18:06 +0530, Sekhar Nori wrote:
> On 10/14/2012 3:13 PM, 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 <hannuxx@xxxxxx>
> > ---
> > 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..d24b573 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 davinci_rtc),
> > + 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;
>
> As mentioned last time, this will have a build break here because fail1
> is being removed down below.
>
> Thanks,
> Sekhar

I'm sorry, did not spot that line before. Will fix.

br,
Hannu


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/