X-Git-Url: http://ftp.safe.ca/?a=blobdiff_plain;f=init%2Fmain.c;h=a92989e7836af6acb73bb6ce8b95ad76ee727f53;hb=c7258a4477b5ed0243c28ec107b98bb946757448;hp=2421e1544127e155207e593e86e6162dcc5b37c3;hpb=414f827c46973ba39320cfb43feb55a0eeb9b4e8;p=safe%2Fjmp%2Flinux-2.6 diff --git a/init/main.c b/init/main.c index 2421e15..a92989e 100644 --- a/init/main.c +++ b/init/main.c @@ -40,6 +40,8 @@ #include #include #include +#include +#include #include #include #include @@ -385,14 +387,19 @@ static void __init setup_per_cpu_areas(void) /* Called by boot processor to activate the rest. */ static void __init smp_init(void) { - unsigned int i; + unsigned int cpu; + unsigned highest = 0; + + for_each_cpu_mask(cpu, cpu_possible_map) + highest = cpu; + nr_cpu_ids = highest + 1; /* FIXME: This should be done in userspace --RR */ - for_each_present_cpu(i) { + for_each_present_cpu(cpu) { if (num_online_cpus() >= max_cpus) break; - if (!cpu_online(i)) - cpu_up(i); + if (!cpu_online(cpu)) + cpu_up(cpu); } /* Any cleanup work */ @@ -515,6 +522,7 @@ asmlinkage void __init start_kernel(void) * enable them */ lock_kernel(); + tick_init(); boot_cpu_init(); page_address_init(); printk(KERN_NOTICE); @@ -700,11 +708,7 @@ static void __init do_basic_setup(void) init_workqueues(); usermodehelper_init(); driver_init(); - -#ifdef CONFIG_PROC_FS init_irq_proc(); -#endif - do_initcalls(); }