Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/zohar...
[linux-2.6-block.git] / init / Kconfig
index 2dca877c9ed710a05775ba963e697ae306f29d0d..92c867e25a294c304a9593983ad0e98abe4b67ad 100644 (file)
@@ -30,6 +30,12 @@ config CC_CAN_LINK
 config CC_HAS_ASM_GOTO
        def_bool $(success,$(srctree)/scripts/gcc-goto.sh $(CC))
 
+config TOOLS_SUPPORT_RELR
+       def_bool $(success,env "CC=$(CC)" "LD=$(LD)" "NM=$(NM)" "OBJCOPY=$(OBJCOPY)" $(srctree)/scripts/tools-support-relr.sh)
+
+config CC_HAS_ASM_INLINE
+       def_bool $(success,echo 'void foo(void) { asm inline (""); }' | $(CC) -x c - -c -o /dev/null)
+
 config CC_HAS_WARN_MAYBE_UNINITIALIZED
        def_bool $(cc-option,-Wmaybe-uninitialized)
        help
@@ -48,7 +54,6 @@ config CC_DISABLE_WARN_MAYBE_UNINITIALIZED
 
 config CONSTRUCTORS
        bool
-       depends on !UML
 
 config IRQ_WORK
        bool
@@ -928,6 +933,28 @@ config RT_GROUP_SCHED
 
 endif #CGROUP_SCHED
 
+config UCLAMP_TASK_GROUP
+       bool "Utilization clamping per group of tasks"
+       depends on CGROUP_SCHED
+       depends on UCLAMP_TASK
+       default n
+       help
+         This feature enables the scheduler to track the clamped utilization
+         of each CPU based on RUNNABLE tasks currently scheduled on that CPU.
+
+         When this option is enabled, the user can specify a min and max
+         CPU bandwidth which is allowed for each single task in a group.
+         The max bandwidth allows to clamp the maximum frequency a task
+         can use, while the min bandwidth allows to define a minimum
+         frequency a task will always use.
+
+         When task group based utilization clamping is enabled, an eventually
+         specified task-specific clamp value is constrained by the cgroup
+         specified clamp value. Both minimum and maximum task clamping cannot
+         be bigger than the corresponding clamping defined at task group level.
+
+         If in doubt, say N.
+
 config CGROUP_PIDS
        bool "PIDs controller"
        help
@@ -1209,20 +1236,26 @@ choice
        default CC_OPTIMIZE_FOR_PERFORMANCE
 
 config CC_OPTIMIZE_FOR_PERFORMANCE
-       bool "Optimize for performance"
+       bool "Optimize for performance (-O2)"
        help
          This is the default optimization level for the kernel, building
          with the "-O2" compiler flag for best performance and most
          helpful compile-time warnings.
 
-config CC_OPTIMIZE_FOR_SIZE
-       bool "Optimize for size"
+config CC_OPTIMIZE_FOR_PERFORMANCE_O3
+       bool "Optimize more for performance (-O3)"
+       depends on ARC
        imply CC_DISABLE_WARN_MAYBE_UNINITIALIZED  # avoid false positives
        help
-         Enabling this option will pass "-Os" instead of "-O2" to
-         your compiler resulting in a smaller kernel.
+         Choosing this option will pass "-O3" to your compiler to optimize
+         the kernel yet more for performance.
 
-         If unsure, say N.
+config CC_OPTIMIZE_FOR_SIZE
+       bool "Optimize for size (-Os)"
+       imply CC_DISABLE_WARN_MAYBE_UNINITIALIZED  # avoid false positives
+       help
+         Choosing this option will pass "-Os" to your compiler resulting
+         in a smaller kernel.
 
 endchoice
 
@@ -1993,6 +2026,14 @@ config MODVERSIONS
          make them incompatible with the kernel you are running.  If
          unsure, say N.
 
+config ASM_MODVERSIONS
+       bool
+       default HAVE_ASM_MODVERSIONS && MODVERSIONS
+       help
+         This enables module versioning for exported symbols also from
+         assembly. This can be enabled only when the target architecture
+         supports it.
+
 config MODULE_REL_CRCS
        bool
        depends on MODVERSIONS
@@ -2010,7 +2051,6 @@ config MODULE_SRCVERSION_ALL
 
 config MODULE_SIG
        bool "Module signature verification"
-       depends on MODULES
        select MODULE_SIG_FORMAT
        help
          Check modules for valid signatures upon load: the signature
@@ -2087,7 +2127,6 @@ config MODULE_SIG_HASH
 
 config MODULE_COMPRESS
        bool "Compress modules on installation"
-       depends on MODULES
        help
 
          Compresses kernel modules when 'make modules_install' is run; gzip or
@@ -2123,9 +2162,38 @@ config MODULE_COMPRESS_XZ
 
 endchoice
 
+config MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS
+       bool "Allow loading of modules with missing namespace imports"
+       help
+         Symbols exported with EXPORT_SYMBOL_NS*() are considered exported in
+         a namespace. A module that makes use of a symbol exported with such a
+         namespace is required to import the namespace via MODULE_IMPORT_NS().
+         There is no technical reason to enforce correct namespace imports,
+         but it creates consistency between symbols defining namespaces and
+         users importing namespaces they make use of. This option relaxes this
+         requirement and lifts the enforcement when loading a module.
+
+         If unsure, say N.
+
+config UNUSED_SYMBOLS
+       bool "Enable unused/obsolete exported symbols"
+       default y if X86
+       help
+         Unused but exported symbols make the kernel needlessly bigger.  For
+         that reason most of these unused exports will soon be removed.  This
+         option is provided temporarily to provide a transition period in case
+         some external kernel module needs one of these symbols anyway. If you
+         encounter such a case in your module, consider if you are actually
+         using the right API.  (rationale: since nobody in the kernel is using
+         this in a module, there is a pretty good chance it's actually the
+         wrong interface to use).  If you really need the symbol, please send a
+         mail to the linux kernel mailing list mentioning the symbol and why
+         you really need it, and what the merge plan to the mainline kernel for
+         your module is.
+
 config TRIM_UNUSED_KSYMS
        bool "Trim unused exported kernel symbols"
-       depends on MODULES && !UNUSED_SYMBOLS
+       depends on !UNUSED_SYMBOLS
        help
          The kernel and some modules make many symbols available for
          other modules to use via EXPORT_SYMBOL() and variants. Depending