diff options
| author | Jiri Kosina <jkosina@suse.cz> | 2011-02-15 04:24:31 -0500 |
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2011-02-15 04:24:31 -0500 |
| commit | 0a9d59a2461477bd9ed143c01af9df3f8f00fa81 (patch) | |
| tree | df997d1cfb0786427a0df1fbd6f0640fa4248cf4 /init | |
| parent | a23ce6da9677d245aa0aadc99f4197030350ab54 (diff) | |
| parent | 795abaf1e4e188c4171e3cd3dbb11a9fcacaf505 (diff) | |
Merge branch 'master' into for-next
Diffstat (limited to 'init')
| -rw-r--r-- | init/Kconfig | 75 | ||||
| -rw-r--r-- | init/calibrate.c | 6 | ||||
| -rw-r--r-- | init/main.c | 13 |
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 | ||
| 518 | config 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 | |||
| 533 | endmenu # "RCU Subsystem" | 518 | endmenu # "RCU Subsystem" |
| 534 | 519 | ||
| 535 | config IKCONFIG | 520 | config IKCONFIG |
| @@ -760,8 +745,8 @@ config DEBUG_BLK_CGROUP | |||
| 760 | endif # CGROUPS | 745 | endif # CGROUPS |
| 761 | 746 | ||
| 762 | menuconfig NAMESPACES | 747 | menuconfig 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 | |||
| 914 | config ANON_INODES | 899 | config ANON_INODES |
| 915 | bool | 900 | bool |
| 916 | 901 | ||
| 917 | menuconfig EMBEDDED | 902 | menuconfig 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 | ||
| 910 | config 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 | |||
| 925 | config UID16 | 918 | config 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 | ||
| 932 | config SYSCTL_SYSCALL | 925 | config 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 | ||
| 949 | config KALLSYMS | 942 | config 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 | ||
| 980 | config HOTPLUG | 973 | config 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 | ||
| 989 | config PRINTK | 982 | config 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 | ||
| 999 | config BUG | 992 | config 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 | ||
| 1009 | config ELF_CORE | 1002 | config 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 | ||
| 1015 | config PCSPKR_PLATFORM | 1008 | config 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 | ||
| 1023 | config BASE_FULL | 1016 | config 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 | ||
| 1031 | config FUTEX | 1024 | config 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 | ||
| 1040 | config EPOLL | 1033 | config 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 | ||
| 1048 | config SIGNALFD | 1041 | config 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 | ||
| 1058 | config TIMERFD | 1051 | config 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 | ||
| 1068 | config EVENTFD | 1061 | config 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 | ||
| 1078 | config SHMEM | 1071 | config 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 | ||
| 1089 | config AIO | 1082 | config 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 | ||
| 1165 | config VM_EVENT_COUNTERS | 1158 | config 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 | ||
| 1174 | config PCI_QUIRKS | 1167 | config 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 | ||
| 1183 | config SLUB_DEBUG | 1176 | config 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 | ||
| 1228 | config SLOB | 1221 | config 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 | ||
| 1238 | config MMAP_ALLOW_UNINITIALIZED | 1231 | config 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) { } | |||
| 96 | extern void tc_init(void); | 96 | extern 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 | */ | ||
| 106 | bool early_boot_irqs_disabled __read_mostly; | ||
| 107 | |||
| 99 | enum system_states system_state __read_mostly; | 108 | enum system_states system_state __read_mostly; |
| 100 | EXPORT_SYMBOL(system_state); | 109 | EXPORT_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. */ |
