mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 10:41:38 -04:00
Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: smp: Allow on_each_cpu() to be called while early_boot_irqs_disabled status to init/main.c lockdep: Move early boot local IRQ enable/disable status to init/main.c
This commit is contained in:
commit
2b1caf6ed7
7 changed files with 22 additions and 40 deletions
13
init/main.c
13
init/main.c
|
|
@ -96,6 +96,15 @@ static inline void mark_rodata_ro(void) { }
|
|||
extern void tc_init(void);
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Debug helper: via this flag we know that we are in 'early bootup code'
|
||||
* where only the boot processor is running with IRQ disabled. This means
|
||||
* two things - IRQ must not be enabled before the flag is cleared and some
|
||||
* operations which are not allowed with IRQ disabled are allowed while the
|
||||
* flag is set.
|
||||
*/
|
||||
bool early_boot_irqs_disabled __read_mostly;
|
||||
|
||||
enum system_states system_state __read_mostly;
|
||||
EXPORT_SYMBOL(system_state);
|
||||
|
||||
|
|
@ -554,7 +563,7 @@ asmlinkage void __init start_kernel(void)
|
|||
cgroup_init_early();
|
||||
|
||||
local_irq_disable();
|
||||
early_boot_irqs_off();
|
||||
early_boot_irqs_disabled = true;
|
||||
|
||||
/*
|
||||
* Interrupts are still disabled. Do necessary setups, then
|
||||
|
|
@ -621,7 +630,7 @@ asmlinkage void __init start_kernel(void)
|
|||
if (!irqs_disabled())
|
||||
printk(KERN_CRIT "start_kernel(): bug: interrupts were "
|
||||
"enabled early\n");
|
||||
early_boot_irqs_on();
|
||||
early_boot_irqs_disabled = false;
|
||||
local_irq_enable();
|
||||
|
||||
/* Interrupts are enabled now so all GFP allocations are safe. */
|
||||
|
|
|
|||
Loading…
Reference in a new issue