The driver core clears the driver data to NULL after device_release
or on probe failure, since commit 0998d0631001288a5974afc0b2a5f568bcdecb4d
(device-core: Ensure drvdata = NULL when no driver is bound).
Thus, it is not needed to manually clear the device driver data to NULL.

Signed-off-by: Jingoo Han <[email protected]>
---
 drivers/rtc/rtc-at32ap700x.c |   20 +++++---------------
 1 files changed, 5 insertions(+), 15 deletions(-)

diff --git a/drivers/rtc/rtc-at32ap700x.c b/drivers/rtc/rtc-at32ap700x.c
index f47fbb5..4a5ccf1 100644
--- a/drivers/rtc/rtc-at32ap700x.c
+++ b/drivers/rtc/rtc-at32ap700x.c
@@ -212,23 +212,20 @@ static int __init at32_rtc_probe(struct platform_device 
*pdev)
        regs = platform_get_resource(pdev, IORESOURCE_MEM, 0);
        if (!regs) {
                dev_dbg(&pdev->dev, "no mmio resource defined\n");
-               ret = -ENXIO;
-               goto out;
+               return -ENXIO;
        }
 
        irq = platform_get_irq(pdev, 0);
        if (irq <= 0) {
                dev_dbg(&pdev->dev, "could not get irq\n");
-               ret = -ENXIO;
-               goto out;
+               return -ENXIO;
        }
 
        rtc->irq = irq;
        rtc->regs = devm_ioremap(&pdev->dev, regs->start, resource_size(regs));
        if (!rtc->regs) {
-               ret = -ENOMEM;
                dev_dbg(&pdev->dev, "could not map I/O memory\n");
-               goto out;
+               return -ENOMEM;
        }
        spin_lock_init(&rtc->lock);
 
@@ -249,7 +246,7 @@ static int __init at32_rtc_probe(struct platform_device 
*pdev)
                                "rtc", rtc);
        if (ret) {
                dev_dbg(&pdev->dev, "could not request irq %d\n", irq);
-               goto out;
+               return ret;
        }
 
        platform_set_drvdata(pdev, rtc);
@@ -258,8 +255,7 @@ static int __init at32_rtc_probe(struct platform_device 
*pdev)
                                &at32_rtc_ops, THIS_MODULE);
        if (IS_ERR(rtc->rtc)) {
                dev_dbg(&pdev->dev, "could not register rtc device\n");
-               ret = PTR_ERR(rtc->rtc);
-               goto out;
+               return PTR_ERR(rtc->rtc);
        }
 
        device_init_wakeup(&pdev->dev, 1);
@@ -268,18 +264,12 @@ static int __init at32_rtc_probe(struct platform_device 
*pdev)
                        (unsigned long)rtc->regs, rtc->irq);
 
        return 0;
-
-out:
-       platform_set_drvdata(pdev, NULL);
-       return ret;
 }
 
 static int __exit at32_rtc_remove(struct platform_device *pdev)
 {
        device_init_wakeup(&pdev->dev, 0);
 
-       platform_set_drvdata(pdev, NULL);
-
        return 0;
 }
 
-- 
1.7.2.5


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

Reply via email to