summaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2006-01-12 14:47:08 -0800
committerSteve French <sfrench@us.ibm.com>2006-01-12 14:47:08 -0800
commit94bc2be31a01a3055ec94176e595dfe208e92d3b (patch)
treeebfbe81c6718a6390bfa1b99c6d228237d818576 /init
parentc32a0b689cb9cc160cfcd19735bbf50bb70c6ef4 (diff)
parent58cba4650a7a414eabd2b40cc9d8e45fcdf192d9 (diff)
downloadop-kernel-dev-94bc2be31a01a3055ec94176e595dfe208e92d3b.zip
op-kernel-dev-94bc2be31a01a3055ec94176e595dfe208e92d3b.tar.gz
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig79
-rw-r--r--init/do_mounts_md.c22
-rw-r--r--init/do_mounts_rd.c4
-rw-r--r--init/main.c18
4 files changed, 67 insertions, 56 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 9fc0759f..25f4d74 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -105,7 +105,6 @@ config SWAP
config SYSVIPC
bool "System V IPC"
- depends on MMU
---help---
Inter Process Communication is a suite of library functions and
system calls which let processes (running programs) synchronize and
@@ -190,40 +189,13 @@ config AUDIT
config AUDITSYSCALL
bool "Enable system-call auditing support"
- depends on AUDIT && (X86 || PPC || PPC64 || ARCH_S390 || IA64 || UML || SPARC64)
+ depends on AUDIT && (X86 || PPC || PPC64 || S390 || IA64 || UML || SPARC64)
default y if SECURITY_SELINUX
help
Enable low-overhead system-call auditing infrastructure that
can be used independently or with another kernel subsystem,
such as SELinux.
-config HOTPLUG
- bool "Support for hot-pluggable devices" if !ARCH_S390
- default ARCH_S390
- help
- This option is provided for the case where no in-kernel-tree
- modules require HOTPLUG functionality, but a module built
- outside the kernel tree does. Such modules require Y here.
-
-config KOBJECT_UEVENT
- bool "Kernel Userspace Events" if EMBEDDED
- depends on NET
- default y
- help
- This option enables the kernel userspace event layer, which is a
- simple mechanism for kernel-to-user communication over a netlink
- socket.
- The goal of the kernel userspace events layer is to provide a simple
- and efficient events system, that notifies userspace about kobject
- state changes. This will enable applications to just listen for
- events instead of polling system devices and files.
- Hotplug events (kobject addition and removal) are also available on
- the netlink socket in addition to the execution of /sbin/hotplug if
- CONFIG_HOTPLUG is enabled.
-
- Say Y, unless you are building a system requiring minimal memory
- consumption.
-
config IKCONFIG
bool "Kernel .config support"
---help---
@@ -256,6 +228,23 @@ config CPUSETS
source "usr/Kconfig"
+config UID16
+ bool "Enable 16-bit UID system calls" if EMBEDDED
+ depends on ARM || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && SPARC32_COMPAT) || UML || (X86_64 && IA32_EMULATION)
+ default y
+ help
+ This enables the legacy 16-bit UID syscall wrappers.
+
+config VM86
+ depends X86
+ default y
+ bool "Enable VM86 support" if EMBEDDED
+ help
+ This option is required by programs like DOSEMU to run 16-bit legacy
+ code on X86 processors. It also may be needed by software like
+ XFree86 to initialize some video cards via BIOS. Disabling this
+ option saves about 6k.
+
config CC_OPTIMIZE_FOR_SIZE
bool "Optimize for size (Look out for broken compilers!)"
default y
@@ -308,6 +297,15 @@ config KALLSYMS_EXTRA_PASS
you wait for kallsyms to be fixed.
+config HOTPLUG
+ bool "Support for hot-pluggable devices" if EMBEDDED
+ default y
+ help
+ This option is provided for the case where no hotplug or uevent
+ capabilities is wanted by the kernel. You should only consider
+ disabling this option for embedded systems that do not use modules, a
+ dynamic /dev tree, or dynamic device discovery. Just say Y.
+
config PRINTK
default y
bool "Enable support for printk" if EMBEDDED
@@ -328,6 +326,12 @@ config BUG
option for embedded systems with no facilities for reporting errors.
Just say Y.
+config ELF_CORE
+ default y
+ bool "Enable ELF core dumps" if EMBEDDED
+ help
+ Enable support for generating core dumps. Disabling saves about 4k.
+
config BASE_FULL
default y
bool "Enable full-sized data structures for core" if EMBEDDED
@@ -399,6 +403,15 @@ config CC_ALIGN_JUMPS
no dummy operations need be executed.
Zero means use compiler's default.
+config SLAB
+ default y
+ bool "Use full SLAB allocator" if EMBEDDED
+ help
+ Disabling this replaces the advanced SLAB allocator and
+ kmalloc support with the drastically simpler SLOB allocator.
+ SLOB is more space efficient but does not scale well and is
+ more susceptible to fragmentation.
+
endmenu # General setup
config TINY_SHMEM
@@ -410,6 +423,10 @@ config BASE_SMALL
default 0 if BASE_FULL
default 1 if !BASE_FULL
+config SLOB
+ default !SLAB
+ bool
+
menu "Loadable module support"
config MODULES
@@ -461,8 +478,8 @@ config OBSOLETE_MODPARM
If unsure, say Y.
config MODVERSIONS
- bool "Module versioning support (EXPERIMENTAL)"
- depends on MODULES && EXPERIMENTAL
+ bool "Module versioning support"
+ depends on MODULES
help
Usually, you have to use modules compiled with your kernel.
Saying Y here makes it sometimes possible to use modules
diff --git a/init/do_mounts_md.c b/init/do_mounts_md.c
index 3fbc355..f6f3680 100644
--- a/init/do_mounts_md.c
+++ b/init/do_mounts_md.c
@@ -17,7 +17,7 @@ static int __initdata raid_noautodetect, raid_autopart;
static struct {
int minor;
int partitioned;
- int pers;
+ int level;
int chunk;
char *device_names;
} md_setup_args[MAX_MD_DEVS] __initdata;
@@ -47,7 +47,7 @@ extern int mdp_major;
*/
static int __init md_setup(char *str)
{
- int minor, level, factor, fault, pers, partitioned = 0;
+ int minor, level, factor, fault, partitioned = 0;
char *pername = "";
char *str1;
int ent;
@@ -78,7 +78,7 @@ static int __init md_setup(char *str)
}
if (ent >= md_setup_ents)
md_setup_ents++;
- switch (get_option(&str, &level)) { /* RAID Personality */
+ switch (get_option(&str, &level)) { /* RAID level */
case 2: /* could be 0 or -1.. */
if (level == 0 || level == LEVEL_LINEAR) {
if (get_option(&str, &factor) != 2 || /* Chunk Size */
@@ -86,16 +86,12 @@ static int __init md_setup(char *str)
printk(KERN_WARNING "md: Too few arguments supplied to md=.\n");
return 0;
}
- md_setup_args[ent].pers = level;
+ md_setup_args[ent].level = level;
md_setup_args[ent].chunk = 1 << (factor+12);
- if (level == LEVEL_LINEAR) {
- pers = LINEAR;
+ if (level == LEVEL_LINEAR)
pername = "linear";
- } else {
- pers = RAID0;
+ else
pername = "raid0";
- }
- md_setup_args[ent].pers = pers;
break;
}
/* FALL THROUGH */
@@ -103,7 +99,7 @@ static int __init md_setup(char *str)
str = str1;
/* FALL THROUGH */
case 0:
- md_setup_args[ent].pers = 0;
+ md_setup_args[ent].level = LEVEL_NONE;
pername="super-block";
}
@@ -190,10 +186,10 @@ static void __init md_setup_drive(void)
continue;
}
- if (md_setup_args[ent].pers) {
+ if (md_setup_args[ent].level != LEVEL_NONE) {
/* non-persistent */
mdu_array_info_t ainfo;
- ainfo.level = pers_to_level(md_setup_args[ent].pers);
+ ainfo.level = md_setup_args[ent].level;
ainfo.size = 0;
ainfo.nr_disks =0;
ainfo.raid_disks =0;
diff --git a/init/do_mounts_rd.c b/init/do_mounts_rd.c
index c10b08a..c2683fc 100644
--- a/init/do_mounts_rd.c
+++ b/init/do_mounts_rd.c
@@ -145,7 +145,7 @@ int __init rd_load_image(char *from)
int nblocks, i, disk;
char *buf = NULL;
unsigned short rotate = 0;
-#if !defined(CONFIG_ARCH_S390) && !defined(CONFIG_PPC_ISERIES)
+#if !defined(CONFIG_S390) && !defined(CONFIG_PPC_ISERIES)
char rotator[4] = { '|' , '/' , '-' , '\\' };
#endif
@@ -237,7 +237,7 @@ int __init rd_load_image(char *from)
}
sys_read(in_fd, buf, BLOCK_SIZE);
sys_write(out_fd, buf, BLOCK_SIZE);
-#if !defined(CONFIG_ARCH_S390) && !defined(CONFIG_PPC_ISERIES)
+#if !defined(CONFIG_S390) && !defined(CONFIG_PPC_ISERIES)
if (!(i % 16)) {
printk("%c\b", rotator[rotate & 0x3]);
rotate++;
diff --git a/init/main.c b/init/main.c
index 27f97f9..e092b19 100644
--- a/init/main.c
+++ b/init/main.c
@@ -47,22 +47,17 @@
#include <linux/rmap.h>
#include <linux/mempolicy.h>
#include <linux/key.h>
-#include <net/sock.h>
#include <asm/io.h>
#include <asm/bugs.h>
#include <asm/setup.h>
#include <asm/sections.h>
+#include <asm/cacheflush.h>
/*
* This is one of the first .c files built. Error out early
* if we have compiler trouble..
*/
-#if __GNUC__ == 2 && __GNUC_MINOR__ == 96
-#ifdef CONFIG_FRAME_POINTER
-#error This compiler cannot compile correctly with frame pointers enabled
-#endif
-#endif
#ifdef CONFIG_X86_LOCAL_APIC
#include <asm/smp.h>
@@ -74,7 +69,7 @@
* To avoid associated bogus bug reports, we flatly refuse to compile
* with a gcc that is known to be too old from the very beginning.
*/
-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 95)
+#if (__GNUC__ < 3) || (__GNUC__ == 3 && __GNUC_MINOR__ < 2)
#error Sorry, your GCC is too old. It builds incorrect kernels.
#endif
@@ -100,6 +95,9 @@ extern void acpi_early_init(void);
#else
static inline void acpi_early_init(void) { }
#endif
+#ifndef CONFIG_DEBUG_RODATA
+static inline void mark_rodata_ro(void) { }
+#endif
#ifdef CONFIG_TC
extern void tc_init(void);
@@ -487,6 +485,7 @@ asmlinkage void __init start_kernel(void)
init_IRQ();
pidhash_init();
init_timers();
+ hrtimers_init();
softirq_init();
time_init();
@@ -509,6 +508,7 @@ asmlinkage void __init start_kernel(void)
}
#endif
vfs_caches_init_early();
+ cpuset_init_early();
mem_init();
kmem_cache_init();
setup_per_cpu_pageset();
@@ -614,9 +614,6 @@ static void __init do_basic_setup(void)
sysctl_init();
#endif
- /* Networking initialization needs a process context */
- sock_init();
-
do_initcalls();
}
@@ -712,6 +709,7 @@ static int init(void * unused)
*/
free_initmem();
unlock_kernel();
+ mark_rodata_ro();
system_state = SYSTEM_RUNNING;
numa_default_policy();
OpenPOWER on IntegriCloud