diff options
Diffstat (limited to 'init')
-rw-r--r-- | init/Kconfig | 24 | ||||
-rw-r--r-- | init/do_mounts_initrd.c | 4 | ||||
-rw-r--r-- | init/initramfs.c | 2 | ||||
-rw-r--r-- | init/main.c | 20 |
4 files changed, 22 insertions, 28 deletions
diff --git a/init/Kconfig b/init/Kconfig index e2056828dc6..d54d0cadcc0 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -7,7 +7,7 @@ config DEFCONFIG_LIST default "/boot/config-$UNAME_RELEASE" default "arch/$ARCH/defconfig" -menu "Code maturity level options" +menu "General setup" config EXPERIMENTAL bool "Prompt for development and/or incomplete code/drivers" @@ -61,9 +61,6 @@ config INIT_ENV_ARG_LIMIT Maximum of each of the number of arguments and environment variables passed to init from the kernel command line. -endmenu - -menu "General setup" config LOCALVERSION string "Local version - append to kernel release" @@ -340,7 +337,7 @@ endif config CC_OPTIMIZE_FOR_SIZE bool "Optimize for size (Look out for broken compilers!)" default y - depends on ARM || H8300 || EXPERIMENTAL + depends on ARM || H8300 || SUPERH || EXPERIMENTAL help Enabling this option will pass "-Os" instead of "-O2" to gcc resulting in a smaller kernel. @@ -468,25 +465,19 @@ config FUTEX run glibc-based applications correctly. config ANON_INODES - bool "Enable anonymous inode source" if EMBEDDED - default y - help - Anonymous inode source for pseudo-files like epoll, signalfd, - timerfd and eventfd. - - If unsure, say Y. + bool config EPOLL bool "Enable eventpoll support" if EMBEDDED default y - depends on ANON_INODES + select ANON_INODES help Disabling this option will cause the kernel to be built without support for epoll family of system calls. config SIGNALFD bool "Enable signalfd() system call" if EMBEDDED - depends on ANON_INODES + select ANON_INODES default y help Enable the signalfd() system call that allows to receive signals @@ -496,7 +487,8 @@ config SIGNALFD config TIMERFD bool "Enable timerfd() system call" if EMBEDDED - depends on ANON_INODES + select ANON_INODES + depends on BROKEN default y help Enable the timerfd() system call that allows to receive timer @@ -506,7 +498,7 @@ config TIMERFD config EVENTFD bool "Enable eventfd() system call" if EMBEDDED - depends on ANON_INODES + select ANON_INODES default y help Enable the eventfd() system call that allows to receive both diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c index a6b4c0c08e1..fd4fc12d262 100644 --- a/init/do_mounts_initrd.c +++ b/init/do_mounts_initrd.c @@ -57,8 +57,10 @@ static void __init handle_initrd(void) pid = kernel_thread(do_linuxrc, "/linuxrc", SIGCHLD); if (pid > 0) - while (pid != sys_wait4(-1, NULL, 0, NULL)) + while (pid != sys_wait4(-1, NULL, 0, NULL)) { + try_to_freeze(); yield(); + } /* move initrd to rootfs' /old */ sys_fchdir(old_fd); diff --git a/init/initramfs.c b/init/initramfs.c index 00eff7a1108..1db02a0025d 100644 --- a/init/initramfs.c +++ b/init/initramfs.c @@ -133,7 +133,7 @@ static __initdata loff_t this_header, next_header; static __initdata int dry_run; -static inline void eat(unsigned n) +static inline void __init eat(unsigned n) { victim += n; this_header += n; diff --git a/init/main.c b/init/main.c index d3bcb3b1162..9def935ab13 100644 --- a/init/main.c +++ b/init/main.c @@ -146,9 +146,14 @@ static unsigned int __initdata max_cpus = NR_CPUS; * greater than 0, limits the maximum number of CPUs activated in * SMP mode to <NUM>. */ +#ifndef CONFIG_X86_IO_APIC +static inline void disable_ioapic_setup(void) {}; +#endif + static int __init nosmp(char *str) { max_cpus = 0; + disable_ioapic_setup(); return 0; } @@ -157,10 +162,13 @@ early_param("nosmp", nosmp); static int __init maxcpus(char *str) { get_option(&str, &max_cpus); - return 1; + if (max_cpus == 0) + disable_ioapic_setup(); + + return 0; } -__setup("maxcpus=", maxcpus); +early_param("maxcpus", maxcpus); #else #define max_cpus NR_CPUS #endif @@ -389,10 +397,6 @@ static void __init smp_init(void) { unsigned int cpu; -#ifndef CONFIG_HOTPLUG_CPU - cpu_possible_map = cpu_present_map; -#endif - /* FIXME: This should be done in userspace --RR */ for_each_present_cpu(cpu) { if (num_online_cpus() >= max_cpus) @@ -537,10 +541,6 @@ asmlinkage void __init start_kernel(void) setup_arch(&command_line); setup_command_line(command_line); unwind_setup(); -#ifndef CONFIG_HOTPLUG_CPU - if (max_cpus < 2) - cpu_possible_map = cpu_online_map; -#endif setup_per_cpu_areas(); smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */ |