diff options
Diffstat (limited to 'kernel/time/tick-common.c')
| -rw-r--r-- | kernel/time/tick-common.c | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/kernel/time/tick-common.c b/kernel/time/tick-common.c index 051bc80a0c4..ed228ef6f6b 100644 --- a/kernel/time/tick-common.c +++ b/kernel/time/tick-common.c @@ -51,7 +51,11 @@ int tick_is_oneshot_available(void)  {  	struct clock_event_device *dev = __this_cpu_read(tick_cpu_device.evtdev); -	return dev && (dev->features & CLOCK_EVT_FEAT_ONESHOT); +	if (!dev || !(dev->features & CLOCK_EVT_FEAT_ONESHOT)) +		return 0; +	if (!(dev->features & CLOCK_EVT_FEAT_C3STOP)) +		return 1; +	return tick_broadcast_oneshot_available();  }  /*  |