Skip to content

Commit

Permalink
[PATCH] Register the boot-cpu in the cpu maps earlier
Browse files Browse the repository at this point in the history
Register the boot-cpu in the cpu maps earlier to allow the early printk to
work, and to fix an obscure deadlock at boot.

Signed-off-by: Stas Sergeev <stsp@aknet.ru>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Stas Sergeev authored and Linus Torvalds committed Mar 23, 2006
1 parent ffa930e commit 44fd229
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions init/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -438,6 +438,15 @@ void __init parse_early_param(void)
* Activate the first processor.
*/

static void __init boot_cpu_init(void)
{
int cpu = smp_processor_id();
/* Mark the boot cpu "present", "online" etc for SMP and UP case */
cpu_set(cpu, cpu_online_map);
cpu_set(cpu, cpu_present_map);
cpu_set(cpu, cpu_possible_map);
}

asmlinkage void __init start_kernel(void)
{
char * command_line;
Expand All @@ -447,17 +456,13 @@ asmlinkage void __init start_kernel(void)
* enable them
*/
lock_kernel();
boot_cpu_init();
page_address_init();
printk(KERN_NOTICE);
printk(linux_banner);
setup_arch(&command_line);
setup_per_cpu_areas();

/*
* Mark the boot cpu "online" so that it can call console drivers in
* printk() and can access its per-cpu storage.
*/
smp_prepare_boot_cpu();
smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */

/*
* Set up the scheduler prior starting any interrupts (such as the
Expand Down

0 comments on commit 44fd229

Please sign in to comment.