posix-timers: give lazy compilers some help optimizing code away
authorNicolas Pitre <nicolas.pitre@linaro.org>
Wed, 14 Dec 2016 23:06:13 +0000 (15:06 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 15 Dec 2016 00:04:08 +0000 (16:04 -0800)
The OpenRISC compiler (so far) fails to optimize away a large portion of
code containing a reference to posix_timer_event in alarmtimer.c when
CONFIG_POSIX_TIMERS is unset.  Let's give it a direct clue to let the
build succeed.

This fixes
[linux-next:master 6682/7183] alarmtimer.c:undefined reference to `posix_timer_event'
reported by kbuild test robot.

Signed-off-by: Nicolas Pitre <nico@linaro.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Josh Triplett <josh@joshtriplett.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
kernel/time/alarmtimer.c

index 9b08ca391aedbaa3f9099e89a5aa72687e1cf89d..3921cf7fea8e1fe7c656a7afbaae4f83b50e3a76 100644 (file)
@@ -516,7 +516,8 @@ static enum alarmtimer_restart alarm_handle_timer(struct alarm *alarm,
 
        spin_lock_irqsave(&ptr->it_lock, flags);
        if ((ptr->it_sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_NONE) {
-               if (posix_timer_event(ptr, 0) != 0)
+               if (IS_ENABLED(CONFIG_POSIX_TIMERS) &&
+                   posix_timer_event(ptr, 0) != 0)
                        ptr->it_overrun++;
        }