--- linux-2.5.52-bk4-org/kernel/timer.c~ Thu Dec 19 12:13:18 2002 +++ linux/kernel/timer.c Fri Dec 20 00:38:15 2002 @@ -1150,7 +1150,7 @@ return 0; } -static void __devinit init_timers_cpu(int cpu) +static void __init init_timers_cpu(int cpu) { int j; tvec_base_t *base; @@ -1167,29 +1167,12 @@ INIT_LIST_HEAD(base->tv1.vec + j); } -static int __devinit timer_cpu_notify(struct notifier_block *self, - unsigned long action, void *hcpu) -{ - long cpu = (long)hcpu; - switch(action) { - case CPU_UP_PREPARE: - init_timers_cpu(cpu); - break; - default: - break; - } - return NOTIFY_OK; -} - -static struct notifier_block __devinitdata timers_nb = { - .notifier_call = timer_cpu_notify, -}; - void __init init_timers(void) { - timer_cpu_notify(&timers_nb, (unsigned long)CPU_UP_PREPARE, - (void *)(long)smp_processor_id()); - register_cpu_notifier(&timers_nb); + int cpu; + for (cpu = 0; cpu < NR_CPUS; cpu++){ + init_timers_cpu(cpu); + } open_softirq(TIMER_SOFTIRQ, run_timer_softirq, NULL); }