[PATCH] arm: fix oops in sched_clock_poll
Ming Lei
tom.leiming at gmail.com
Wed Jan 19 23:35:22 EST 2011
Hi,
2011/1/20 Russell King - ARM Linux <linux at arm.linux.org.uk>:
> On Thu, Jan 20, 2011 at 12:47:21AM +0800, tom.leiming at gmail.com wrote:
>> From: Ming Lei <tom.leiming at gmail.com>
>>
>> The patch fixes one oops in sched_clock_poll, tested on
>> beagle xm, follows the oops message:
>
>> diff --git a/arch/arm/kernel/sched_clock.c b/arch/arm/kernel/sched_clock.c
>> index 9a46370..782dd08 100644
>> --- a/arch/arm/kernel/sched_clock.c
>> +++ b/arch/arm/kernel/sched_clock.c
>> @@ -21,7 +21,9 @@ static void (*sched_clock_update_fn)(void);
>> static void sched_clock_poll(unsigned long wrap_ticks)
>> {
>> mod_timer(&sched_clock_timer, round_jiffies(jiffies + wrap_ticks));
>> - sched_clock_update_fn();
>> +
>> + if (sched_clock_update_fn)
>> + sched_clock_update_fn();
>
> It's called here because it's supposed to be initialized by the time this
> function is called. Please ensure that is the case.
On omap2, sched_clock_update_fn is initialized in omap_init_clocksource_32k,
and certainly is after calling sched_clock_poll, so the oops is triggered.
thanks,
--
Lei Ming
More information about the linux-arm-kernel
mailing list