Commit 6b954823 authored by Rusty Russell's avatar Rusty Russell

cpumask: convert kernel time functions

Impact: Use new APIs

Convert kernel/time functions to use struct cpumask *.

Note the ugly bitmap declarations in tick-broadcast.c.  These should
be cpumask_var_t, but there was no obvious initialization function to
put the alloc_cpumask_var() calls in.  This was safe.

(Eventually 'struct cpumask' will be undefined for CONFIG_CPUMASK_OFFSTACK,
so we use a bitmap here to show we really mean it).
Signed-off-by: default avatarRusty Russell <rusty@rustcorp.com.au>
Signed-off-by: default avatarMike Travis <travis@sgi.com>
parent e7577c50
...@@ -84,10 +84,10 @@ static inline void tick_cancel_sched_timer(int cpu) { } ...@@ -84,10 +84,10 @@ static inline void tick_cancel_sched_timer(int cpu) { }
# ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST # ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
extern struct tick_device *tick_get_broadcast_device(void); extern struct tick_device *tick_get_broadcast_device(void);
extern cpumask_t *tick_get_broadcast_mask(void); extern struct cpumask *tick_get_broadcast_mask(void);
# ifdef CONFIG_TICK_ONESHOT # ifdef CONFIG_TICK_ONESHOT
extern cpumask_t *tick_get_broadcast_oneshot_mask(void); extern struct cpumask *tick_get_broadcast_oneshot_mask(void);
# endif # endif
# endif /* BROADCAST */ # endif /* BROADCAST */
......
...@@ -148,7 +148,7 @@ static void clocksource_watchdog(unsigned long data) ...@@ -148,7 +148,7 @@ static void clocksource_watchdog(unsigned long data)
int next_cpu = next_cpu_nr(raw_smp_processor_id(), cpu_online_map); int next_cpu = next_cpu_nr(raw_smp_processor_id(), cpu_online_map);
if (next_cpu >= nr_cpu_ids) if (next_cpu >= nr_cpu_ids)
next_cpu = first_cpu(cpu_online_map); next_cpu = cpumask_first(cpu_online_mask);
watchdog_timer.expires += WATCHDOG_INTERVAL; watchdog_timer.expires += WATCHDOG_INTERVAL;
add_timer_on(&watchdog_timer, next_cpu); add_timer_on(&watchdog_timer, next_cpu);
} }
...@@ -173,7 +173,7 @@ static void clocksource_check_watchdog(struct clocksource *cs) ...@@ -173,7 +173,7 @@ static void clocksource_check_watchdog(struct clocksource *cs)
watchdog_last = watchdog->read(); watchdog_last = watchdog->read();
watchdog_timer.expires = jiffies + WATCHDOG_INTERVAL; watchdog_timer.expires = jiffies + WATCHDOG_INTERVAL;
add_timer_on(&watchdog_timer, add_timer_on(&watchdog_timer,
first_cpu(cpu_online_map)); cpumask_first(cpu_online_mask));
} }
} else { } else {
if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS) if (cs->flags & CLOCK_SOURCE_IS_CONTINUOUS)
...@@ -195,7 +195,7 @@ static void clocksource_check_watchdog(struct clocksource *cs) ...@@ -195,7 +195,7 @@ static void clocksource_check_watchdog(struct clocksource *cs)
watchdog_timer.expires = watchdog_timer.expires =
jiffies + WATCHDOG_INTERVAL; jiffies + WATCHDOG_INTERVAL;
add_timer_on(&watchdog_timer, add_timer_on(&watchdog_timer,
first_cpu(cpu_online_map)); cpumask_first(cpu_online_mask));
} }
} }
} }
......
This diff is collapsed.
...@@ -254,7 +254,7 @@ static int tick_check_new_device(struct clock_event_device *newdev) ...@@ -254,7 +254,7 @@ static int tick_check_new_device(struct clock_event_device *newdev)
curdev = NULL; curdev = NULL;
} }
clockevents_exchange_device(curdev, newdev); clockevents_exchange_device(curdev, newdev);
tick_setup_device(td, newdev, cpu, &cpumask_of_cpu(cpu)); tick_setup_device(td, newdev, cpu, cpumask_of(cpu));
if (newdev->features & CLOCK_EVT_FEAT_ONESHOT) if (newdev->features & CLOCK_EVT_FEAT_ONESHOT)
tick_oneshot_notify(); tick_oneshot_notify();
...@@ -299,9 +299,9 @@ static void tick_shutdown(unsigned int *cpup) ...@@ -299,9 +299,9 @@ static void tick_shutdown(unsigned int *cpup)
} }
/* Transfer the do_timer job away from this cpu */ /* Transfer the do_timer job away from this cpu */
if (*cpup == tick_do_timer_cpu) { if (*cpup == tick_do_timer_cpu) {
int cpu = first_cpu(cpu_online_map); int cpu = cpumask_first(cpu_online_mask);
tick_do_timer_cpu = (cpu != NR_CPUS) ? cpu : tick_do_timer_cpu = (cpu < nr_cpu_ids) ? cpu :
TICK_DO_TIMER_NONE; TICK_DO_TIMER_NONE;
} }
spin_unlock_irqrestore(&tick_device_lock, flags); spin_unlock_irqrestore(&tick_device_lock, flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment