aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/time/tick-broadcast.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/time/tick-broadcast.c')
-rw-r--r--kernel/time/tick-broadcast.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c
index f1f3eee28113..bd7034542399 100644
--- a/kernel/time/tick-broadcast.c
+++ b/kernel/time/tick-broadcast.c
@@ -235,7 +235,7 @@ static void tick_do_broadcast_on_off(void *why)
235 case CLOCK_EVT_NOTIFY_BROADCAST_FORCE: 235 case CLOCK_EVT_NOTIFY_BROADCAST_FORCE:
236 if (!cpu_isset(cpu, tick_broadcast_mask)) { 236 if (!cpu_isset(cpu, tick_broadcast_mask)) {
237 cpu_set(cpu, tick_broadcast_mask); 237 cpu_set(cpu, tick_broadcast_mask);
238 if (td->mode == TICKDEV_MODE_PERIODIC) 238 if (bc->mode == TICKDEV_MODE_PERIODIC)
239 clockevents_shutdown(dev); 239 clockevents_shutdown(dev);
240 } 240 }
241 if (*reason == CLOCK_EVT_NOTIFY_BROADCAST_FORCE) 241 if (*reason == CLOCK_EVT_NOTIFY_BROADCAST_FORCE)
@@ -245,7 +245,7 @@ static void tick_do_broadcast_on_off(void *why)
245 if (!tick_broadcast_force && 245 if (!tick_broadcast_force &&
246 cpu_isset(cpu, tick_broadcast_mask)) { 246 cpu_isset(cpu, tick_broadcast_mask)) {
247 cpu_clear(cpu, tick_broadcast_mask); 247 cpu_clear(cpu, tick_broadcast_mask);
248 if (td->mode == TICKDEV_MODE_PERIODIC) 248 if (bc->mode == TICKDEV_MODE_PERIODIC)
249 tick_setup_periodic(dev, 0); 249 tick_setup_periodic(dev, 0);
250 } 250 }
251 break; 251 break;
@@ -575,4 +575,12 @@ void tick_shutdown_broadcast_oneshot(unsigned int *cpup)
575 spin_unlock_irqrestore(&tick_broadcast_lock, flags); 575 spin_unlock_irqrestore(&tick_broadcast_lock, flags);
576} 576}
577 577
578/*
579 * Check, whether the broadcast device is in one shot mode
580 */
581int tick_broadcast_oneshot_active(void)
582{
583 return tick_broadcast_device.mode == TICKDEV_MODE_ONESHOT;
584}
585
578#endif 586#endif