|
@@ -612,6 +612,14 @@ static void tick_handle_oneshot_broadcast(struct clock_event_device *dev)
|
|
|
now = ktime_get();
|
|
|
/* Find all expired events */
|
|
|
for_each_cpu(cpu, tick_broadcast_oneshot_mask) {
|
|
|
+ /*
|
|
|
+ * Required for !SMP because for_each_cpu() reports
|
|
|
+ * unconditionally CPU0 as set on UP kernels.
|
|
|
+ */
|
|
|
+ if (!IS_ENABLED(CONFIG_SMP) &&
|
|
|
+ cpumask_empty(tick_broadcast_oneshot_mask))
|
|
|
+ break;
|
|
|
+
|
|
|
td = &per_cpu(tick_cpu_device, cpu);
|
|
|
if (td->evtdev->next_event <= now) {
|
|
|
cpumask_set_cpu(cpu, tmpmask);
|