aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorJiri Kosina <jkosina@suse.cz>2011-02-15 04:24:31 -0500
committerJiri Kosina <jkosina@suse.cz>2011-02-15 04:24:31 -0500
commit0a9d59a2461477bd9ed143c01af9df3f8f00fa81 (patch)
treedf997d1cfb0786427a0df1fbd6f0640fa4248cf4 /init
parenta23ce6da9677d245aa0aadc99f4197030350ab54 (diff)
parent795abaf1e4e188c4171e3cd3dbb11a9fcacaf505 (diff)
Merge branch 'master' into for-next
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig75
-rw-r--r--init/calibrate.c6
-rw-r--r--init/main.c13
3 files changed, 48 insertions, 46 deletions
diff --git a/init/Kconfig b/init/Kconfig
index cb0b2051bbb4..3da09dab5378 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -515,21 +515,6 @@ config RCU_BOOST_DELAY
515 515
516 Accept the default if unsure. 516 Accept the default if unsure.
517 517
518config SRCU_SYNCHRONIZE_DELAY
519 int "Microseconds to delay before waiting for readers"
520 range 0 20
521 default 10
522 help
523 This option controls how long SRCU delays before entering its
524 loop waiting on SRCU readers. The purpose of this loop is
525 to avoid the unconditional context-switch penalty that would
526 otherwise be incurred if there was an active SRCU reader,
527 in a manner similar to adaptive locking schemes. This should
528 be set to be a bit longer than the common-case SRCU read-side
529 critical-section overhead.
530
531 Accept the default if unsure.
532
533endmenu # "RCU Subsystem" 518endmenu # "RCU Subsystem"
534 519
535config IKCONFIG 520config IKCONFIG
@@ -760,8 +745,8 @@ config DEBUG_BLK_CGROUP
760endif # CGROUPS 745endif # CGROUPS
761 746
762menuconfig NAMESPACES 747menuconfig NAMESPACES
763 bool "Namespaces support" if EMBEDDED 748 bool "Namespaces support" if EXPERT
764 default !EMBEDDED 749 default !EXPERT
765 help 750 help
766 Provides the way to make tasks work with different objects using 751 Provides the way to make tasks work with different objects using
767 the same id. For example same IPC id may refer to different objects 752 the same id. For example same IPC id may refer to different objects
@@ -914,23 +899,31 @@ config SYSCTL
914config ANON_INODES 899config ANON_INODES
915 bool 900 bool
916 901
917menuconfig EMBEDDED 902menuconfig EXPERT
918 bool "Configure standard kernel features (for small systems)" 903 bool "Configure standard kernel features (expert users)"
919 help 904 help
920 This option allows certain base kernel options and settings 905 This option allows certain base kernel options and settings
921 to be disabled or tweaked. This is for specialized 906 to be disabled or tweaked. This is for specialized
922 environments which can tolerate a "non-standard" kernel. 907 environments which can tolerate a "non-standard" kernel.
923 Only use this if you really know what you are doing. 908 Only use this if you really know what you are doing.
924 909
910config EMBEDDED
911 bool "Embedded system"
912 select EXPERT
913 help
914 This option should be enabled if compiling the kernel for
915 an embedded system so certain expert options are available
916 for configuration.
917
925config UID16 918config UID16
926 bool "Enable 16-bit UID system calls" if EMBEDDED 919 bool "Enable 16-bit UID system calls" if EXPERT
927 depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION) 920 depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION)
928 default y 921 default y
929 help 922 help
930 This enables the legacy 16-bit UID syscall wrappers. 923 This enables the legacy 16-bit UID syscall wrappers.
931 924
932config SYSCTL_SYSCALL 925config SYSCTL_SYSCALL
933 bool "Sysctl syscall support" if EMBEDDED 926 bool "Sysctl syscall support" if EXPERT
934 depends on PROC_SYSCTL 927 depends on PROC_SYSCTL
935 default y 928 default y
936 select SYSCTL 929 select SYSCTL
@@ -947,7 +940,7 @@ config SYSCTL_SYSCALL
947 If unsure say Y here. 940 If unsure say Y here.
948 941
949config KALLSYMS 942config KALLSYMS
950 bool "Load all symbols for debugging/ksymoops" if EMBEDDED 943 bool "Load all symbols for debugging/ksymoops" if EXPERT
951 default y 944 default y
952 help 945 help
953 Say Y here to let the kernel print out symbolic crash information and 946 Say Y here to let the kernel print out symbolic crash information and
@@ -978,7 +971,7 @@ config KALLSYMS_EXTRA_PASS
978 971
979 972
980config HOTPLUG 973config HOTPLUG
981 bool "Support for hot-pluggable devices" if EMBEDDED 974 bool "Support for hot-pluggable devices" if EXPERT
982 default y 975 default y
983 help 976 help
984 This option is provided for the case where no hotplug or uevent 977 This option is provided for the case where no hotplug or uevent
@@ -988,7 +981,7 @@ config HOTPLUG
988 981
989config PRINTK 982config PRINTK
990 default y 983 default y
991 bool "Enable support for printk" if EMBEDDED 984 bool "Enable support for printk" if EXPERT
992 help 985 help
993 This option enables normal printk support. Removing it 986 This option enables normal printk support. Removing it
994 eliminates most of the message strings from the kernel image 987 eliminates most of the message strings from the kernel image
@@ -997,7 +990,7 @@ config PRINTK
997 strongly discouraged. 990 strongly discouraged.
998 991
999config BUG 992config BUG
1000 bool "BUG() support" if EMBEDDED 993 bool "BUG() support" if EXPERT
1001 default y 994 default y
1002 help 995 help
1003 Disabling this option eliminates support for BUG and WARN, reducing 996 Disabling this option eliminates support for BUG and WARN, reducing
@@ -1008,12 +1001,12 @@ config BUG
1008 1001
1009config ELF_CORE 1002config ELF_CORE
1010 default y 1003 default y
1011 bool "Enable ELF core dumps" if EMBEDDED 1004 bool "Enable ELF core dumps" if EXPERT
1012 help 1005 help
1013 Enable support for generating core dumps. Disabling saves about 4k. 1006 Enable support for generating core dumps. Disabling saves about 4k.
1014 1007
1015config PCSPKR_PLATFORM 1008config PCSPKR_PLATFORM
1016 bool "Enable PC-Speaker support" if EMBEDDED 1009 bool "Enable PC-Speaker support" if EXPERT
1017 depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES 1010 depends on ALPHA || X86 || MIPS || PPC_PREP || PPC_CHRP || PPC_PSERIES
1018 default y 1011 default y
1019 help 1012 help
@@ -1022,14 +1015,14 @@ config PCSPKR_PLATFORM
1022 1015
1023config BASE_FULL 1016config BASE_FULL
1024 default y 1017 default y
1025 bool "Enable full-sized data structures for core" if EMBEDDED 1018 bool "Enable full-sized data structures for core" if EXPERT
1026 help 1019 help
1027 Disabling this option reduces the size of miscellaneous core 1020 Disabling this option reduces the size of miscellaneous core
1028 kernel data structures. This saves memory on small machines, 1021 kernel data structures. This saves memory on small machines,
1029 but may reduce performance. 1022 but may reduce performance.
1030 1023
1031config FUTEX 1024config FUTEX
1032 bool "Enable futex support" if EMBEDDED 1025 bool "Enable futex support" if EXPERT
1033 default y 1026 default y
1034 select RT_MUTEXES 1027 select RT_MUTEXES
1035 help 1028 help
@@ -1038,7 +1031,7 @@ config FUTEX
1038 run glibc-based applications correctly. 1031 run glibc-based applications correctly.
1039 1032
1040config EPOLL 1033config EPOLL
1041 bool "Enable eventpoll support" if EMBEDDED 1034 bool "Enable eventpoll support" if EXPERT
1042 default y 1035 default y
1043 select ANON_INODES 1036 select ANON_INODES
1044 help 1037 help
@@ -1046,7 +1039,7 @@ config EPOLL
1046 support for epoll family of system calls. 1039 support for epoll family of system calls.
1047 1040
1048config SIGNALFD 1041config SIGNALFD
1049 bool "Enable signalfd() system call" if EMBEDDED 1042 bool "Enable signalfd() system call" if EXPERT
1050 select ANON_INODES 1043 select ANON_INODES
1051 default y 1044 default y
1052 help 1045 help
@@ -1056,7 +1049,7 @@ config SIGNALFD
1056 If unsure, say Y. 1049 If unsure, say Y.
1057 1050
1058config TIMERFD 1051config TIMERFD
1059 bool "Enable timerfd() system call" if EMBEDDED 1052 bool "Enable timerfd() system call" if EXPERT
1060 select ANON_INODES 1053 select ANON_INODES
1061 default y 1054 default y
1062 help 1055 help
@@ -1066,7 +1059,7 @@ config TIMERFD
1066 If unsure, say Y. 1059 If unsure, say Y.
1067 1060
1068config EVENTFD 1061config EVENTFD
1069 bool "Enable eventfd() system call" if EMBEDDED 1062 bool "Enable eventfd() system call" if EXPERT
1070 select ANON_INODES 1063 select ANON_INODES
1071 default y 1064 default y
1072 help 1065 help
@@ -1076,7 +1069,7 @@ config EVENTFD
1076 If unsure, say Y. 1069 If unsure, say Y.
1077 1070
1078config SHMEM 1071config SHMEM
1079 bool "Use full shmem filesystem" if EMBEDDED 1072 bool "Use full shmem filesystem" if EXPERT
1080 default y 1073 default y
1081 depends on MMU 1074 depends on MMU
1082 help 1075 help
@@ -1087,7 +1080,7 @@ config SHMEM
1087 which may be appropriate on small systems without swap. 1080 which may be appropriate on small systems without swap.
1088 1081
1089config AIO 1082config AIO
1090 bool "Enable AIO support" if EMBEDDED 1083 bool "Enable AIO support" if EXPERT
1091 default y 1084 default y
1092 help 1085 help
1093 This option enables POSIX asynchronous I/O which may by used 1086 This option enables POSIX asynchronous I/O which may by used
@@ -1164,16 +1157,16 @@ endmenu
1164 1157
1165config VM_EVENT_COUNTERS 1158config VM_EVENT_COUNTERS
1166 default y 1159 default y
1167 bool "Enable VM event counters for /proc/vmstat" if EMBEDDED 1160 bool "Enable VM event counters for /proc/vmstat" if EXPERT
1168 help 1161 help
1169 VM event counters are needed for event counts to be shown. 1162 VM event counters are needed for event counts to be shown.
1170 This option allows the disabling of the VM event counters 1163 This option allows the disabling of the VM event counters
1171 on EMBEDDED systems. /proc/vmstat will only show page counts 1164 on EXPERT systems. /proc/vmstat will only show page counts
1172 if VM event counters are disabled. 1165 if VM event counters are disabled.
1173 1166
1174config PCI_QUIRKS 1167config PCI_QUIRKS
1175 default y 1168 default y
1176 bool "Enable PCI quirk workarounds" if EMBEDDED 1169 bool "Enable PCI quirk workarounds" if EXPERT
1177 depends on PCI 1170 depends on PCI
1178 help 1171 help
1179 This enables workarounds for various PCI chipset 1172 This enables workarounds for various PCI chipset
@@ -1182,7 +1175,7 @@ config PCI_QUIRKS
1182 1175
1183config SLUB_DEBUG 1176config SLUB_DEBUG
1184 default y 1177 default y
1185 bool "Enable SLUB debugging support" if EMBEDDED 1178 bool "Enable SLUB debugging support" if EXPERT
1186 depends on SLUB && SYSFS 1179 depends on SLUB && SYSFS
1187 help 1180 help
1188 SLUB has extensive debug support features. Disabling these can 1181 SLUB has extensive debug support features. Disabling these can
@@ -1226,7 +1219,7 @@ config SLUB
1226 a slab allocator. 1219 a slab allocator.
1227 1220
1228config SLOB 1221config SLOB
1229 depends on EMBEDDED 1222 depends on EXPERT
1230 bool "SLOB (Simple Allocator)" 1223 bool "SLOB (Simple Allocator)"
1231 help 1224 help
1232 SLOB replaces the stock allocator with a drastically simpler 1225 SLOB replaces the stock allocator with a drastically simpler
@@ -1237,7 +1230,7 @@ endchoice
1237 1230
1238config MMAP_ALLOW_UNINITIALIZED 1231config MMAP_ALLOW_UNINITIALIZED
1239 bool "Allow mmapped anonymous memory to be uninitialized" 1232 bool "Allow mmapped anonymous memory to be uninitialized"
1240 depends on EMBEDDED && !MMU 1233 depends on EXPERT && !MMU
1241 default n 1234 default n
1242 help 1235 help
1243 Normally, and according to the Linux spec, anonymous memory obtained 1236 Normally, and according to the Linux spec, anonymous memory obtained
diff --git a/init/calibrate.c b/init/calibrate.c
index 6eb48e53d61c..24fe022c55f9 100644
--- a/init/calibrate.c
+++ b/init/calibrate.c
@@ -66,7 +66,7 @@ static unsigned long __cpuinit calibrate_delay_direct(void)
66 pre_start = 0; 66 pre_start = 0;
67 read_current_timer(&start); 67 read_current_timer(&start);
68 start_jiffies = jiffies; 68 start_jiffies = jiffies;
69 while (jiffies <= (start_jiffies + 1)) { 69 while (time_before_eq(jiffies, start_jiffies + 1)) {
70 pre_start = start; 70 pre_start = start;
71 read_current_timer(&start); 71 read_current_timer(&start);
72 } 72 }
@@ -74,8 +74,8 @@ static unsigned long __cpuinit calibrate_delay_direct(void)
74 74
75 pre_end = 0; 75 pre_end = 0;
76 end = post_start; 76 end = post_start;
77 while (jiffies <= 77 while (time_before_eq(jiffies, start_jiffies + 1 +
78 (start_jiffies + 1 + DELAY_CALIBRATION_TICKS)) { 78 DELAY_CALIBRATION_TICKS)) {
79 pre_end = end; 79 pre_end = end;
80 read_current_timer(&end); 80 read_current_timer(&end);
81 } 81 }
diff --git a/init/main.c b/init/main.c
index 00799c1d4628..33c37c379e96 100644
--- a/init/main.c
+++ b/init/main.c
@@ -96,6 +96,15 @@ static inline void mark_rodata_ro(void) { }
96extern void tc_init(void); 96extern void tc_init(void);
97#endif 97#endif
98 98
99/*
100 * Debug helper: via this flag we know that we are in 'early bootup code'
101 * where only the boot processor is running with IRQ disabled. This means
102 * two things - IRQ must not be enabled before the flag is cleared and some
103 * operations which are not allowed with IRQ disabled are allowed while the
104 * flag is set.
105 */
106bool early_boot_irqs_disabled __read_mostly;
107
99enum system_states system_state __read_mostly; 108enum system_states system_state __read_mostly;
100EXPORT_SYMBOL(system_state); 109EXPORT_SYMBOL(system_state);
101 110
@@ -554,7 +563,7 @@ asmlinkage void __init start_kernel(void)
554 cgroup_init_early(); 563 cgroup_init_early();
555 564
556 local_irq_disable(); 565 local_irq_disable();
557 early_boot_irqs_off(); 566 early_boot_irqs_disabled = true;
558 567
559/* 568/*
560 * Interrupts are still disabled. Do necessary setups, then 569 * Interrupts are still disabled. Do necessary setups, then
@@ -621,7 +630,7 @@ asmlinkage void __init start_kernel(void)
621 if (!irqs_disabled()) 630 if (!irqs_disabled())
622 printk(KERN_CRIT "start_kernel(): bug: interrupts were " 631 printk(KERN_CRIT "start_kernel(): bug: interrupts were "
623 "enabled early\n"); 632 "enabled early\n");
624 early_boot_irqs_on(); 633 early_boot_irqs_disabled = false;
625 local_irq_enable(); 634 local_irq_enable();
626 635
627 /* Interrupts are enabled now so all GFP allocations are safe. */ 636 /* Interrupts are enabled now so all GFP allocations are safe. */