alarmtimer: Drop device refcount after rtc_open()
authorThomas Gleixner <tglx@linutronix.de>
Wed, 4 May 2011 06:18:34 +0000 (08:18 +0200)
committerThomas Gleixner <tglx@linutronix.de>
Wed, 4 May 2011 06:18:34 +0000 (08:18 +0200)
class_find_device() takes a refcount on the rtc device. rtc_open()
takes another one, so we can drop it after the rtc_open() call.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: John Stultz <john.stultz@linaro.org>
kernel/time/alarmtimer.c

index e5db9b00751b02473d0903e7b4456aa0c2c5cd22..c6027fe9a4e6d5f853f71d694c894e874591072e 100644 (file)
@@ -675,8 +675,14 @@ static int __init alarmtimer_init_late(void)
        /* Find an rtc device and init the rtc_timer */
        dev = class_find_device(rtc_class, NULL, &str, has_wakealarm);
        /* If we have a device then str is valid. See has_wakealarm() */
-       if (dev)
+       if (dev) {
                rtcdev = rtc_class_open(str);
+               /*
+                * Drop the reference we got in class_find_device,
+                * rtc_open takes its own.
+                */
+               put_device(dev);
+       }
        if (!rtcdev) {
                printk(KERN_WARNING "No RTC device found, ALARM timers will"
                        " not wake from suspend");