diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 7 | ||||
-rw-r--r-- | init/main.c | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/init/Kconfig b/init/Kconfig index 3f74784560a5..62b66acfdb30 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -1388,6 +1388,13 @@ config FUTEX | |||
1388 | support for "fast userspace mutexes". The resulting kernel may not | 1388 | support for "fast userspace mutexes". The resulting kernel may not |
1389 | run glibc-based applications correctly. | 1389 | run glibc-based applications correctly. |
1390 | 1390 | ||
1391 | config HAVE_FUTEX_CMPXCHG | ||
1392 | bool | ||
1393 | help | ||
1394 | Architectures should select this if futex_atomic_cmpxchg_inatomic() | ||
1395 | is implemented and always working. This removes a couple of runtime | ||
1396 | checks. | ||
1397 | |||
1391 | config EPOLL | 1398 | config EPOLL |
1392 | bool "Enable eventpoll support" if EXPERT | 1399 | bool "Enable eventpoll support" if EXPERT |
1393 | default y | 1400 | default y |
diff --git a/init/main.c b/init/main.c index 2fd9cef70ee8..9c7fd4c9249f 100644 --- a/init/main.c +++ b/init/main.c | |||
@@ -561,7 +561,6 @@ asmlinkage void __init start_kernel(void) | |||
561 | init_timers(); | 561 | init_timers(); |
562 | hrtimers_init(); | 562 | hrtimers_init(); |
563 | softirq_init(); | 563 | softirq_init(); |
564 | acpi_early_init(); | ||
565 | timekeeping_init(); | 564 | timekeeping_init(); |
566 | time_init(); | 565 | time_init(); |
567 | sched_clock_postinit(); | 566 | sched_clock_postinit(); |
@@ -613,6 +612,7 @@ asmlinkage void __init start_kernel(void) | |||
613 | calibrate_delay(); | 612 | calibrate_delay(); |
614 | pidmap_init(); | 613 | pidmap_init(); |
615 | anon_vma_init(); | 614 | anon_vma_init(); |
615 | acpi_early_init(); | ||
616 | #ifdef CONFIG_X86 | 616 | #ifdef CONFIG_X86 |
617 | if (efi_enabled(EFI_RUNTIME_SERVICES)) | 617 | if (efi_enabled(EFI_RUNTIME_SERVICES)) |
618 | efi_enter_virtual_mode(); | 618 | efi_enter_virtual_mode(); |
@@ -812,7 +812,7 @@ void __init load_default_modules(void) | |||
812 | static int run_init_process(const char *init_filename) | 812 | static int run_init_process(const char *init_filename) |
813 | { | 813 | { |
814 | argv_init[0] = init_filename; | 814 | argv_init[0] = init_filename; |
815 | return do_execve(init_filename, | 815 | return do_execve(getname_kernel(init_filename), |
816 | (const char __user *const __user *)argv_init, | 816 | (const char __user *const __user *)argv_init, |
817 | (const char __user *const __user *)envp_init); | 817 | (const char __user *const __user *)envp_init); |
818 | } | 818 | } |