From: Ingo Molnar Date: Fri, 7 Dec 2007 18:02:47 +0000 (+0100) Subject: sched: enable early use of sched_clock() X-Git-Tag: v2.6.24-rc5~50^2 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=8ced5f69e4bc09adcc6442e090e2e64c197246cf;p=linux-2.6-omap-h63xx.git sched: enable early use of sched_clock() some platforms have sched_clock() implementations that cannot be called very early during wakeup. If it's called it might hang or crash in hard to debug ways. So only call update_rq_clock() [which calls sched_clock()] if sched_init() has already been called. (rq->idle is NULL before the scheduler is initialized.) Signed-off-by: Ingo Molnar --- diff --git a/kernel/sched.c b/kernel/sched.c index 67d9d1799d8..c6e551de795 100644 --- a/kernel/sched.c +++ b/kernel/sched.c @@ -488,7 +488,12 @@ unsigned long long cpu_clock(int cpu) local_irq_save(flags); rq = cpu_rq(cpu); - update_rq_clock(rq); + /* + * Only call sched_clock() if the scheduler has already been + * initialized (some code might call cpu_clock() very early): + */ + if (rq->idle) + update_rq_clock(rq); now = rq->clock; local_irq_restore(flags);