Merge tag 'for-linus-20131008' of git://git.infradead.org/linux-mtd
[cascardo/linux.git] / kernel / time / tick-broadcast.c
index 6d3f916..218bcb5 100644 (file)
@@ -157,7 +157,10 @@ int tick_device_uses_broadcast(struct clock_event_device *dev, int cpu)
                dev->event_handler = tick_handle_periodic;
                tick_device_setup_broadcast_func(dev);
                cpumask_set_cpu(cpu, tick_broadcast_mask);
-               tick_broadcast_start_periodic(bc);
+               if (tick_broadcast_device.mode == TICKDEV_MODE_PERIODIC)
+                       tick_broadcast_start_periodic(bc);
+               else
+                       tick_broadcast_setup_oneshot(bc);
                ret = 1;
        } else {
                /*