OSDN Git Service

[PATCH] timer initialisation fix
authorAndrew Morton <akpm@osdl.org>
Tue, 11 Apr 2006 05:53:58 +0000 (22:53 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 11 Apr 2006 13:18:40 +0000 (06:18 -0700)
commitba6edfcd1708da2e665f14eee76e87f39448ec40
tree68aaebb5d97c31712567fb459dcd34343a514b78
parent5246d0503130fa58904c8beb987fcf93b96d8ab6
[PATCH] timer initialisation fix

We need the boot CPU's tvec_bases[] entry to be initialised super-early in
boot, for early_serial_setup().  That runs within setup_arch(), before even
per-cpu areas are initialised.

The patch changes tvec_bases to use compile-time initialisation, and adds a
separate array `tvec_base_done' to keep track of which CPU has had its
tvec_bases[] entry initialised (because we can no longer use the zeroness of
that tvec_bases[] entry to determine whether it has been initialised).

Thanks to Eugene Surovegin <ebs@ebshome.net> for diagnosing this.

Cc: Eugene Surovegin <ebs@ebshome.net>
Cc: Jan Beulich <jbeulich@novell.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
kernel/timer.c