--- /dev/null
+From 9f083b74df3a7eaa100b456f2dc195512daf728e Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 25 Mar 2015 13:05:19 +0100
+Subject: clockevents: Remove CONFIG_GENERIC_CLOCKEVENTS_BUILD
+
+From: Thomas Gleixner <tglx@linutronix.de>
+
+commit 9f083b74df3a7eaa100b456f2dc195512daf728e upstream.
+
+This option was for simpler migration to the clock events code.
+Most architectures have been converted and the option has been
+disfunctional as a standalone option for quite some time. Remove
+it.
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Link: http://lkml.kernel.org/r/5021859.jl9OC1medj@vostro.rjw.lan
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Signed-off-by: Preeti U Murthy <preeti@linux.vnet.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+
+---
+ include/linux/clockchips.h | 9 +++------
+ kernel/time/Kconfig | 6 ------
+ kernel/time/Makefile | 6 ++----
+ kernel/time/clockevents.c | 3 ---
+ kernel/time/tick-internal.h | 4 ++--
+ 5 files changed, 7 insertions(+), 21 deletions(-)
+
+--- a/include/linux/clockchips.h
++++ b/include/linux/clockchips.h
+@@ -22,7 +22,7 @@ enum clock_event_nofitiers {
+ CLOCK_EVT_NOTIFY_CPU_DEAD,
+ };
+
+-#ifdef CONFIG_GENERIC_CLOCKEVENTS_BUILD
++#ifdef CONFIG_GENERIC_CLOCKEVENTS
+
+ #include <linux/clocksource.h>
+ #include <linux/cpumask.h>
+@@ -194,13 +194,9 @@ static inline int tick_check_broadcast_e
+ static inline void tick_setup_hrtimer_broadcast(void) {};
+ #endif
+
+-#ifdef CONFIG_GENERIC_CLOCKEVENTS
+ extern int clockevents_notify(unsigned long reason, void *arg);
+-#else
+-static inline int clockevents_notify(unsigned long reason, void *arg) { return 0; }
+-#endif
+
+-#else /* CONFIG_GENERIC_CLOCKEVENTS_BUILD */
++#else /* CONFIG_GENERIC_CLOCKEVENTS */
+
+ static inline void clockevents_suspend(void) {}
+ static inline void clockevents_resume(void) {}
+@@ -208,6 +204,7 @@ static inline void clockevents_resume(vo
+ static inline int clockevents_notify(unsigned long reason, void *arg) { return 0; }
+ static inline int tick_check_broadcast_expired(void) { return 0; }
+ static inline void tick_setup_hrtimer_broadcast(void) {};
++static inline int clockevents_notify(unsigned long reason, void *arg) { return 0; }
+
+ #endif
+
+--- a/kernel/time/Kconfig
++++ b/kernel/time/Kconfig
+@@ -33,12 +33,6 @@ config ARCH_USES_GETTIMEOFFSET
+ config GENERIC_CLOCKEVENTS
+ bool
+
+-# Migration helper. Builds, but does not invoke
+-config GENERIC_CLOCKEVENTS_BUILD
+- bool
+- default y
+- depends on GENERIC_CLOCKEVENTS
+-
+ # Architecture can handle broadcast in a driver-agnostic way
+ config ARCH_HAS_TICK_BROADCAST
+ bool
+--- a/kernel/time/Makefile
++++ b/kernel/time/Makefile
+@@ -2,15 +2,13 @@ obj-y += time.o timer.o hrtimer.o itimer
+ obj-y += timekeeping.o ntp.o clocksource.o jiffies.o timer_list.o
+ obj-y += timeconv.o timecounter.o posix-clock.o alarmtimer.o
+
+-obj-$(CONFIG_GENERIC_CLOCKEVENTS_BUILD) += clockevents.o
+-obj-$(CONFIG_GENERIC_CLOCKEVENTS) += tick-common.o
++obj-$(CONFIG_GENERIC_CLOCKEVENTS) += clockevents.o tick-common.o
+ ifeq ($(CONFIG_GENERIC_CLOCKEVENTS_BROADCAST),y)
+ obj-y += tick-broadcast.o
+ obj-$(CONFIG_TICK_ONESHOT) += tick-broadcast-hrtimer.o
+ endif
+ obj-$(CONFIG_GENERIC_SCHED_CLOCK) += sched_clock.o
+-obj-$(CONFIG_TICK_ONESHOT) += tick-oneshot.o
+-obj-$(CONFIG_TICK_ONESHOT) += tick-sched.o
++obj-$(CONFIG_TICK_ONESHOT) += tick-oneshot.o tick-sched.o
+ obj-$(CONFIG_TIMER_STATS) += timer_stats.o
+ obj-$(CONFIG_DEBUG_FS) += timekeeping_debug.o
+ obj-$(CONFIG_TEST_UDELAY) += test_udelay.o
+--- a/kernel/time/clockevents.c
++++ b/kernel/time/clockevents.c
+@@ -541,7 +541,6 @@ void clockevents_resume(void)
+ dev->resume(dev);
+ }
+
+-#ifdef CONFIG_GENERIC_CLOCKEVENTS
+ /**
+ * clockevents_notify - notification about relevant events
+ * Returns 0 on success, any other value on error
+@@ -727,5 +726,3 @@ static int __init clockevents_init_sysfs
+ }
+ device_initcall(clockevents_init_sysfs);
+ #endif /* SYSFS */
+-
+-#endif /* GENERIC_CLOCK_EVENTS */
+--- a/kernel/time/tick-internal.h
++++ b/kernel/time/tick-internal.h
+@@ -10,7 +10,7 @@ extern seqlock_t jiffies_lock;
+
+ #define CS_NAME_LEN 32
+
+-#ifdef CONFIG_GENERIC_CLOCKEVENTS_BUILD
++#ifdef CONFIG_GENERIC_CLOCKEVENTS
+
+ #define TICK_DO_TIMER_NONE -1
+ #define TICK_DO_TIMER_BOOT -2
+@@ -166,7 +166,7 @@ static inline int tick_device_is_functio
+
+ int __clockevents_update_freq(struct clock_event_device *dev, u32 freq);
+
+-#endif
++#endif /* GENERIC_CLOCKEVENTS */
+
+ extern void do_timer(unsigned long ticks);
+ extern void update_wall_time(void);
--- /dev/null
+From bfb83b27519aa7ed9510f601a8f825a2c1484bc2 Mon Sep 17 00:00:00 2001
+From: Thomas Gleixner <tglx@linutronix.de>
+Date: Wed, 25 Mar 2015 13:06:04 +0100
+Subject: tick: Move clocksource related stuff to timekeeping.h
+
+From: Thomas Gleixner <tglx@linutronix.de>
+
+commit bfb83b27519aa7ed9510f601a8f825a2c1484bc2 upstream.
+
+Move clocksource related stuff to timekeeping.h and remove the
+pointless include from ntp.c
+
+Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
+[ rjw: Subject ]
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Cc: Peter Zijlstra <peterz@infradead.org>
+Link: http://lkml.kernel.org/r/2714218.nM5AEfAHj0@vostro.rjw.lan
+Signed-off-by: Ingo Molnar <mingo@kernel.org>
+Signed-off-by: Preeti U Murthy <preeti@linux.vnet.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/time/clocksource.c | 2 +-
+ kernel/time/jiffies.c | 2 +-
+ kernel/time/ntp.c | 1 -
+ kernel/time/tick-internal.h | 6 ------
+ kernel/time/timekeeping.h | 7 +++++++
+ 5 files changed, 9 insertions(+), 9 deletions(-)
+
+--- a/kernel/time/clocksource.c
++++ b/kernel/time/clocksource.c
+@@ -31,7 +31,7 @@
+ #include <linux/tick.h>
+ #include <linux/kthread.h>
+
+-#include "tick-internal.h"
++#include "timekeeping.h"
+ #include "timekeeping_internal.h"
+
+ /**
+--- a/kernel/time/jiffies.c
++++ b/kernel/time/jiffies.c
+@@ -25,7 +25,7 @@
+ #include <linux/module.h>
+ #include <linux/init.h>
+
+-#include "tick-internal.h"
++#include "timekeeping.h"
+
+ /* The Jiffies based clocksource is the lowest common
+ * denominator clock source which should function on
+--- a/kernel/time/ntp.c
++++ b/kernel/time/ntp.c
+@@ -17,7 +17,6 @@
+ #include <linux/module.h>
+ #include <linux/rtc.h>
+
+-#include "tick-internal.h"
+ #include "ntp_internal.h"
+
+ /*
+--- a/kernel/time/tick-internal.h
++++ b/kernel/time/tick-internal.h
+@@ -6,10 +6,6 @@
+
+ #include "timekeeping.h"
+
+-extern seqlock_t jiffies_lock;
+-
+-#define CS_NAME_LEN 32
+-
+ #ifdef CONFIG_GENERIC_CLOCKEVENTS
+
+ #define TICK_DO_TIMER_NONE -1
+@@ -168,5 +164,3 @@ int __clockevents_update_freq(struct clo
+
+ #endif /* GENERIC_CLOCKEVENTS */
+
+-extern void do_timer(unsigned long ticks);
+-extern void update_wall_time(void);
+--- a/kernel/time/timekeeping.h
++++ b/kernel/time/timekeeping.h
+@@ -19,4 +19,11 @@ extern void timekeeping_clocktai(struct
+ extern int timekeeping_suspend(void);
+ extern void timekeeping_resume(void);
+
++extern void do_timer(unsigned long ticks);
++extern void update_wall_time(void);
++
++extern seqlock_t jiffies_lock;
++
++#define CS_NAME_LEN 32
++
+ #endif