Use devm_request_threaded_irq() to make cleanup paths more simple.
Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
                return ret;
        }
 
-       ret = request_threaded_irq(rtc->irq, NULL, tps80031_rtc_irq,
+       ret = devm_request_threaded_irq(&pdev->dev, rtc->irq, NULL,
+                       tps80031_rtc_irq,
                        IRQF_ONESHOT | IRQF_EARLY_RESUME,
                        dev_name(&pdev->dev), rtc);
        if (ret < 0) {
 {
        struct tps80031_rtc *rtc = platform_get_drvdata(pdev);
 
-       free_irq(rtc->irq, rtc);
        rtc_device_unregister(rtc->rtc);
        return 0;
 }