Messages in this thread Patch in this message | | | Date | Fri, 5 Jun 2009 11:27:11 +0800 | From | Feng Tang <> | Subject | [PATCH] tick: add check for the existence of broadcast clock event device |
| |
From 2f076e1867c8bbb145b74d289358174644d9fed8 Mon Sep 17 00:00:00 2001 From: Feng Tang <feng.tang@intel.com> Date: Fri, 5 Jun 2009 10:36:15 +0800 Subject: [PATCH] tick: add check for the existence of broadcast clock event device
Some platform may have no broadcast clock event device, as it use always-on external timers for per-cpu timer and has no extra one for broadcast device. This check will secure the access to bc device when system get some boradcast on/off and enter/exit message
Signed-off-by: Feng Tang <feng.tang@intel.com> --- kernel/time/tick-broadcast.c | 8 +++++++- 1 files changed, 7 insertions(+), 1 deletions(-)
diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c index 118a3b3..110e0bc 100644 --- a/kernel/time/tick-broadcast.c +++ b/kernel/time/tick-broadcast.c @@ -214,10 +214,13 @@ static void tick_do_broadcast_on_off(void *why) spin_lock_irqsave(&tick_broadcast_lock, flags); + bc = tick_broadcast_device.evtdev; + if (!bc) + goto out; + cpu = smp_processor_id(); td = &per_cpu(tick_cpu_device, cpu); dev = td->evtdev; - bc = tick_broadcast_device.evtdev; /* * Is the device not affected by the powerstate ? @@ -468,6 +471,9 @@ void tick_broadcast_oneshot_control(unsigned long reason) goto out; bc = tick_broadcast_device.evtdev; + if (!bc) + goto out; + cpu = smp_processor_id(); td = &per_cpu(tick_cpu_device, cpu); dev = td->evtdev; -- 1.5.6.3
| |