Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44fd2299 authored by Stas Sergeev's avatar Stas Sergeev Committed by Linus Torvalds
Browse files

[PATCH] Register the boot-cpu in the cpu maps earlier



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: default avatarStas Sergeev <stsp@aknet.ru>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent ffa930ef
Loading
Loading
Loading
Loading
+11 −6
Original line number Diff line number Diff line
@@ -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;
@@ -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