@@ -327,13 +327,19 @@ unlock:
* Powerstate information: The system enters/leaves a state, where
* affected devices might stop
*/
-static void tick_do_broadcast_on_off(unsigned long *reason)
+void tick_broadcast_on_off(unsigned long reason, int *oncpu)
{
struct tick_device *td = tick_get_cpu_device();
struct clock_event_device *bc, *dev = td->evtdev;
int cpu = smp_processor_id(), bc_stopped;
unsigned long flags;
+ if (!cpumask_test_cpu(*oncpu, cpu_online_mask)) {
+ pr_err("tick-broadcast: ignoring broadcast for offline CPU #%d\n",
+ *oncpu);
+ return;
+ }
+
/*
* Is the device not affected by the powerstate ?
*/
@@ -347,7 +353,7 @@ static void tick_do_broadcast_on_off(unsigned long *reason)
bc = tick_broadcast_device.evtdev;
bc_stopped = cpumask_empty(tick_broadcast_mask);
- switch (*reason) {
+ switch (reason) {
case CLOCK_EVT_NOTIFY_BROADCAST_FORCE:
tick_broadcast_force = 1;
case CLOCK_EVT_NOTIFY_BROADCAST_ON:
@@ -383,19 +389,6 @@ static void tick_do_broadcast_on_off(unsigned long *reason)
}
/*
- * Powerstate information: The system enters/leaves a state, where
- * affected devices might stop.
- */
-void tick_broadcast_on_off(unsigned long reason, int *oncpu)
-{
- if (!cpumask_test_cpu(*oncpu, cpu_online_mask))
- printk(KERN_ERR "tick-broadcast: ignoring broadcast for offline CPU #%d\n",
- *oncpu);
- else
- tick_do_broadcast_on_off(&reason);
-}
-
-/*
* Set the periodic handler depending on broadcast on/off
*/
void tick_set_periodic_handler(struct clock_event_device *dev, int broadcast)
We have added a wrapper around tick_do_broadcast_on_off() which doesn't have anything so special that we should keep it. It just had a check if cpu is online or not. Just merge these two routines and keep one: tick_broadcast_on_off(). This would get rid of an extra function call that we are doing currently. This also replaces printk(KERN_ERR "**"); with pr_err("**"); Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> --- kernel/time/tick-broadcast.c | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-)