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(-)
diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c index ec86227..9d81a81 100644 --- a/kernel/time/tick-broadcast.c +++ b/kernel/time/tick-broadcast.c @@ -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)