alarmtimer: Don't call rtc_timer_init() when CONFIG_RTC_CLASS=n
authorThomas Gleixner <tglx@linutronix.de>
Sat, 24 Mar 2012 11:46:23 +0000 (12:46 +0100)
committerThomas Gleixner <tglx@linutronix.de>
Sat, 24 Mar 2012 11:46:23 +0000 (12:46 +0100)
rtc_timer_init() is not available when CONFIG_RTC_CLASS=n. Provide a
proper wrapper in the RTC section of alarmtimer.c

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

index c165488..8a538c5 100644 (file)
@@ -46,10 +46,9 @@ static struct alarm_base {
 static ktime_t freezer_delta;
 static DEFINE_SPINLOCK(freezer_delta_lock);
 
-static struct rtc_timer                rtctimer;
-
 #ifdef CONFIG_RTC_CLASS
 /* rtc timer and device for setting alarm wakeups at suspend */
+static struct rtc_timer                rtctimer;
 static struct rtc_device       *rtcdev;
 static DEFINE_SPINLOCK(rtcdev_lock);
 
@@ -97,6 +96,11 @@ static int alarmtimer_rtc_add_device(struct device *dev,
        return 0;
 }
 
+static inline void alarmtimer_rtc_timer_init(void)
+{
+       rtc_timer_init(&rtctimer, NULL, NULL);
+}
+
 static struct class_interface alarmtimer_rtc_interface = {
        .add_dev = &alarmtimer_rtc_add_device,
 };
@@ -118,6 +122,7 @@ static inline struct rtc_device *alarmtimer_get_rtcdev(void)
 #define rtcdev (NULL)
 static inline int alarmtimer_rtc_interface_setup(void) { return 0; }
 static inline void alarmtimer_rtc_interface_remove(void) { }
+static inline void alarmtimer_rtc_timer_init(void) { }
 #endif
 
 /**
@@ -784,7 +789,7 @@ static int __init alarmtimer_init(void)
                .nsleep         = alarm_timer_nsleep,
        };
 
-       rtc_timer_init(&rtctimer, NULL, NULL);
+       alarmtimer_rtc_timer_init();
 
        posix_timers_register_clock(CLOCK_REALTIME_ALARM, &alarm_clock);
        posix_timers_register_clock(CLOCK_BOOTTIME_ALARM, &alarm_clock);