git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'stable-3.2' into pandora-3.2
[pandora-kernel.git]
/
init
/
main.c
diff --git
a/init/main.c
b/init/main.c
index
63f5f6f
..
558a9fd
100644
(file)
--- a/
init/main.c
+++ b/
init/main.c
@@
-68,6
+68,8
@@
#include <linux/shmem_fs.h>
#include <linux/slab.h>
#include <linux/perf_event.h>
#include <linux/shmem_fs.h>
#include <linux/slab.h>
#include <linux/perf_event.h>
+#include <linux/random.h>
+#include <linux/kaiser.h>
#include <asm/io.h>
#include <asm/bugs.h>
#include <asm/io.h>
#include <asm/bugs.h>
@@
-462,6
+464,7
@@
static void __init mm_init(void)
percpu_init_late();
pgtable_cache_init();
vmalloc_init();
percpu_init_late();
pgtable_cache_init();
vmalloc_init();
+ kaiser_init();
}
asmlinkage void __init start_kernel(void)
}
asmlinkage void __init start_kernel(void)
@@
-512,6
+515,9
@@
asmlinkage void __init start_kernel(void)
parse_args("Booting kernel", static_command_line, __start___param,
__stop___param - __start___param,
&unknown_bootoption);
parse_args("Booting kernel", static_command_line, __start___param,
__stop___param - __start___param,
&unknown_bootoption);
+
+ jump_label_init();
+
/*
* These use large bootmem allocations and must precede
* kmem_cache_init()
/*
* These use large bootmem allocations and must precede
* kmem_cache_init()
@@
-560,9
+566,6
@@
asmlinkage void __init start_kernel(void)
early_boot_irqs_disabled = false;
local_irq_enable();
early_boot_irqs_disabled = false;
local_irq_enable();
- /* Interrupts are enabled now so all GFP allocations are safe. */
- gfp_allowed_mask = __GFP_BITS_MASK;
-
kmem_cache_init_late();
/*
kmem_cache_init_late();
/*
@@
-606,8
+609,12
@@
asmlinkage void __init start_kernel(void)
pidmap_init();
anon_vma_init();
#ifdef CONFIG_X86
pidmap_init();
anon_vma_init();
#ifdef CONFIG_X86
- if (efi_enabled)
+ if (efi_enabled
(EFI_RUNTIME_SERVICES)
)
efi_enter_virtual_mode();
efi_enter_virtual_mode();
+#endif
+#ifdef CONFIG_X86_ESPFIX64
+ /* Should be run before the first non-init thread is created */
+ init_espfix_bsp();
#endif
thread_info_cache_init();
cred_init();
#endif
thread_info_cache_init();
cred_init();
@@
-732,6
+739,7
@@
static void __init do_basic_setup(void)
do_ctors();
usermodehelper_enable();
do_initcalls();
do_ctors();
usermodehelper_enable();
do_initcalls();
+ random_int_secret_init();
}
static void __init do_pre_smp_initcalls(void)
}
static void __init do_pre_smp_initcalls(void)
@@
-795,6
+803,10
@@
static int __init kernel_init(void * unused)
* Wait until kthreadd is all set-up.
*/
wait_for_completion(&kthreadd_done);
* Wait until kthreadd is all set-up.
*/
wait_for_completion(&kthreadd_done);
+
+ /* Now the scheduler is fully set up and can do blocking allocations */
+ gfp_allowed_mask = __GFP_BITS_MASK;
+
/*
* init can allocate pages on any node
*/
/*
* init can allocate pages on any node
*/