VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   32 Branches   54 Tags
b24413180f560 (Greg Kroah-Hartman         2017-11-01 15:07:57 +0100    1) # SPDX-License-Identifier: GPL-2.0
fb32e03fdc170 (Mathieu Desnoyers          2008-02-02 15:10:33 -0500    2) #
fb32e03fdc170 (Mathieu Desnoyers          2008-02-02 15:10:33 -0500    3) # General architecture dependent options
fb32e03fdc170 (Mathieu Desnoyers          2008-02-02 15:10:33 -0500    4) #
125e564582cbc (Mathieu Desnoyers          2008-02-02 15:10:36 -0500    5) 
1572497cb0e6d (Christoph Hellwig          2018-07-31 13:39:30 +0200    6) #
1572497cb0e6d (Christoph Hellwig          2018-07-31 13:39:30 +0200    7) # Note: arch/$(SRCARCH)/Kconfig needs to be included first so that it can
1572497cb0e6d (Christoph Hellwig          2018-07-31 13:39:30 +0200    8) # override the default values in this file.
1572497cb0e6d (Christoph Hellwig          2018-07-31 13:39:30 +0200    9) #
1572497cb0e6d (Christoph Hellwig          2018-07-31 13:39:30 +0200   10) source "arch/$(SRCARCH)/Kconfig"
1572497cb0e6d (Christoph Hellwig          2018-07-31 13:39:30 +0200   11) 
22471e1313f2b (Randy Dunlap               2018-07-31 13:39:33 +0200   12) menu "General architecture-dependent options"
22471e1313f2b (Randy Dunlap               2018-07-31 13:39:33 +0200   13) 
692f66f26a4c1 (Hari Bathini               2017-05-08 15:56:18 -0700   14) config CRASH_CORE
692f66f26a4c1 (Hari Bathini               2017-05-08 15:56:18 -0700   15) 	bool
692f66f26a4c1 (Hari Bathini               2017-05-08 15:56:18 -0700   16) 
2965faa5e03d1 (Dave Young                 2015-09-09 15:38:55 -0700   17) config KEXEC_CORE
692f66f26a4c1 (Hari Bathini               2017-05-08 15:56:18 -0700   18) 	select CRASH_CORE
2965faa5e03d1 (Dave Young                 2015-09-09 15:38:55 -0700   19) 	bool
2965faa5e03d1 (Dave Young                 2015-09-09 15:38:55 -0700   20) 
175fca3bf91a1 (Sven Schnelle              2019-08-23 21:49:13 +0200   21) config KEXEC_ELF
175fca3bf91a1 (Sven Schnelle              2019-08-23 21:49:13 +0200   22) 	bool
175fca3bf91a1 (Sven Schnelle              2019-08-23 21:49:13 +0200   23) 
467d27824920e (Thiago Jung Bauermann      2016-12-19 16:22:32 -0800   24) config HAVE_IMA_KEXEC
467d27824920e (Thiago Jung Bauermann      2016-12-19 16:22:32 -0800   25) 	bool
467d27824920e (Thiago Jung Bauermann      2016-12-19 16:22:32 -0800   26) 
5e6e9852d6f76 (Christoph Hellwig          2020-09-03 16:22:35 +0200   27) config SET_FS
5e6e9852d6f76 (Christoph Hellwig          2020-09-03 16:22:35 +0200   28) 	bool
5e6e9852d6f76 (Christoph Hellwig          2020-09-03 16:22:35 +0200   29) 
05736e4ac13c0 (Thomas Gleixner            2018-05-29 17:48:27 +0200   30) config HOTPLUG_SMT
05736e4ac13c0 (Thomas Gleixner            2018-05-29 17:48:27 +0200   31) 	bool
05736e4ac13c0 (Thomas Gleixner            2018-05-29 17:48:27 +0200   32) 
142781e108b13 (Thomas Gleixner            2020-07-22 23:59:56 +0200   33) config GENERIC_ENTRY
142781e108b13 (Thomas Gleixner            2020-07-22 23:59:56 +0200   34)        bool
142781e108b13 (Thomas Gleixner            2020-07-22 23:59:56 +0200   35) 
125e564582cbc (Mathieu Desnoyers          2008-02-02 15:10:36 -0500   36) config KPROBES
125e564582cbc (Mathieu Desnoyers          2008-02-02 15:10:36 -0500   37) 	bool "Kprobes"
05ed160e89baf (Masami Hiramatsu           2010-09-13 19:25:41 +0900   38) 	depends on MODULES
125e564582cbc (Mathieu Desnoyers          2008-02-02 15:10:36 -0500   39) 	depends on HAVE_KPROBES
05ed160e89baf (Masami Hiramatsu           2010-09-13 19:25:41 +0900   40) 	select KALLSYMS
125e564582cbc (Mathieu Desnoyers          2008-02-02 15:10:36 -0500   41) 	help
125e564582cbc (Mathieu Desnoyers          2008-02-02 15:10:36 -0500   42) 	  Kprobes allows you to trap at almost any kernel address and
125e564582cbc (Mathieu Desnoyers          2008-02-02 15:10:36 -0500   43) 	  execute a callback function.  register_kprobe() establishes
125e564582cbc (Mathieu Desnoyers          2008-02-02 15:10:36 -0500   44) 	  a probepoint and specifies the callback.  Kprobes is useful
125e564582cbc (Mathieu Desnoyers          2008-02-02 15:10:36 -0500   45) 	  for kernel debugging, non-intrusive instrumentation and testing.
125e564582cbc (Mathieu Desnoyers          2008-02-02 15:10:36 -0500   46) 	  If in doubt, say "N".
125e564582cbc (Mathieu Desnoyers          2008-02-02 15:10:36 -0500   47) 
45f81b1c96d97 (Steven Rostedt             2010-10-29 12:33:43 -0400   48) config JUMP_LABEL
24b54fee106d8 (Krzysztof Kozlowski        2019-12-04 16:50:26 -0800   49) 	bool "Optimize very unlikely/likely branches"
24b54fee106d8 (Krzysztof Kozlowski        2019-12-04 16:50:26 -0800   50) 	depends on HAVE_ARCH_JUMP_LABEL
24b54fee106d8 (Krzysztof Kozlowski        2019-12-04 16:50:26 -0800   51) 	depends on CC_HAS_ASM_GOTO
24b54fee106d8 (Krzysztof Kozlowski        2019-12-04 16:50:26 -0800   52) 	help
24b54fee106d8 (Krzysztof Kozlowski        2019-12-04 16:50:26 -0800   53) 	 This option enables a transparent branch optimization that
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   54) 	 makes certain almost-always-true or almost-always-false branch
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   55) 	 conditions even cheaper to execute within the kernel.
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   56) 
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   57) 	 Certain performance-sensitive kernel code, such as trace points,
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   58) 	 scheduler functionality, networking code and KVM have such
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   59) 	 branches and include support for this optimization technique.
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   60) 
24b54fee106d8 (Krzysztof Kozlowski        2019-12-04 16:50:26 -0800   61) 	 If it is detected that the compiler has support for "asm goto",
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   62) 	 the kernel will compile such branches with just a nop
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   63) 	 instruction. When the condition flag is toggled to true, the
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   64) 	 nop will be converted to a jump instruction to execute the
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   65) 	 conditional block of instructions.
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   66) 
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   67) 	 This technique lowers overhead and stress on the branch prediction
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   68) 	 of the processor and generally makes the kernel faster. The update
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   69) 	 of the condition is slower, but those are always very rare.
45f81b1c96d97 (Steven Rostedt             2010-10-29 12:33:43 -0400   70) 
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   71) 	 ( On 32-bit x86, the necessary options added to the compiler
c5905afb0ee65 (Ingo Molnar                2012-02-24 08:31:31 +0100   72) 	   flags may increase the size of the kernel slightly. )
45f81b1c96d97 (Steven Rostedt             2010-10-29 12:33:43 -0400   73) 
1987c947d905b (Peter Zijlstra             2015-07-27 18:32:09 +0200   74) config STATIC_KEYS_SELFTEST
1987c947d905b (Peter Zijlstra             2015-07-27 18:32:09 +0200   75) 	bool "Static key selftest"
1987c947d905b (Peter Zijlstra             2015-07-27 18:32:09 +0200   76) 	depends on JUMP_LABEL
1987c947d905b (Peter Zijlstra             2015-07-27 18:32:09 +0200   77) 	help
1987c947d905b (Peter Zijlstra             2015-07-27 18:32:09 +0200   78) 	  Boot time self-test of the branch patching code.
1987c947d905b (Peter Zijlstra             2015-07-27 18:32:09 +0200   79) 
f03c412915f5f (Peter Zijlstra             2020-08-18 15:57:46 +0200   80) config STATIC_CALL_SELFTEST
f03c412915f5f (Peter Zijlstra             2020-08-18 15:57:46 +0200   81) 	bool "Static call selftest"
f03c412915f5f (Peter Zijlstra             2020-08-18 15:57:46 +0200   82) 	depends on HAVE_STATIC_CALL
f03c412915f5f (Peter Zijlstra             2020-08-18 15:57:46 +0200   83) 	help
f03c412915f5f (Peter Zijlstra             2020-08-18 15:57:46 +0200   84) 	  Boot time self-test of the call patching code.
f03c412915f5f (Peter Zijlstra             2020-08-18 15:57:46 +0200   85) 
afd66255b9a48 (Masami Hiramatsu           2010-02-25 08:34:07 -0500   86) config OPTPROBES
5cc718b9dad68 (Masami Hiramatsu           2010-03-15 13:00:54 -0400   87) 	def_bool y
5cc718b9dad68 (Masami Hiramatsu           2010-03-15 13:00:54 -0400   88) 	depends on KPROBES && HAVE_OPTPROBES
01b1d88b09824 (Thomas Gleixner            2019-07-26 23:19:38 +0200   89) 	select TASKS_RCU if PREEMPTION
afd66255b9a48 (Masami Hiramatsu           2010-02-25 08:34:07 -0500   90) 
e7dbfe349d12e (Masami Hiramatsu           2012-09-28 17:15:20 +0900   91) config KPROBES_ON_FTRACE
e7dbfe349d12e (Masami Hiramatsu           2012-09-28 17:15:20 +0900   92) 	def_bool y
e7dbfe349d12e (Masami Hiramatsu           2012-09-28 17:15:20 +0900   93) 	depends on KPROBES && HAVE_KPROBES_ON_FTRACE
e7dbfe349d12e (Masami Hiramatsu           2012-09-28 17:15:20 +0900   94) 	depends on DYNAMIC_FTRACE_WITH_REGS
e7dbfe349d12e (Masami Hiramatsu           2012-09-28 17:15:20 +0900   95) 	help
e7dbfe349d12e (Masami Hiramatsu           2012-09-28 17:15:20 +0900   96) 	 If function tracer is enabled and the arch supports full
e7dbfe349d12e (Masami Hiramatsu           2012-09-28 17:15:20 +0900   97) 	 passing of pt_regs to function tracing, then kprobes can
e7dbfe349d12e (Masami Hiramatsu           2012-09-28 17:15:20 +0900   98) 	 optimize on top of function tracing.
e7dbfe349d12e (Masami Hiramatsu           2012-09-28 17:15:20 +0900   99) 
2b14449835086 (Srikar Dronamraju          2012-02-09 14:56:42 +0530  100) config UPROBES
09294e31b1779 (David A. Long              2014-03-07 10:32:22 -0500  101) 	def_bool n
e8f4aa6087fa8 (Allen Pais                 2016-10-13 10:06:13 +0530  102) 	depends on ARCH_SUPPORTS_UPROBES
2b14449835086 (Srikar Dronamraju          2012-02-09 14:56:42 +0530  103) 	help
7b2d81d48a2d8 (Ingo Molnar                2012-02-17 09:27:41 +0100  104) 	  Uprobes is the user-space counterpart to kprobes: they
7b2d81d48a2d8 (Ingo Molnar                2012-02-17 09:27:41 +0100  105) 	  enable instrumentation applications (such as 'perf probe')
7b2d81d48a2d8 (Ingo Molnar                2012-02-17 09:27:41 +0100  106) 	  to establish unintrusive probes in user-space binaries and
7b2d81d48a2d8 (Ingo Molnar                2012-02-17 09:27:41 +0100  107) 	  libraries, by executing handler functions when the probes
7b2d81d48a2d8 (Ingo Molnar                2012-02-17 09:27:41 +0100  108) 	  are hit by user-space applications.
7b2d81d48a2d8 (Ingo Molnar                2012-02-17 09:27:41 +0100  109) 
7b2d81d48a2d8 (Ingo Molnar                2012-02-17 09:27:41 +0100  110) 	  ( These probes come in the form of single-byte breakpoints,
7b2d81d48a2d8 (Ingo Molnar                2012-02-17 09:27:41 +0100  111) 	    managed by the kernel and kept transparent to the probed
7b2d81d48a2d8 (Ingo Molnar                2012-02-17 09:27:41 +0100  112) 	    application. )
2b14449835086 (Srikar Dronamraju          2012-02-09 14:56:42 +0530  113) 
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  114) config HAVE_64BIT_ALIGNED_ACCESS
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  115) 	def_bool 64BIT && !HAVE_EFFICIENT_UNALIGNED_ACCESS
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  116) 	help
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  117) 	  Some architectures require 64 bit accesses to be 64 bit
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  118) 	  aligned, which also requires structs containing 64 bit values
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  119) 	  to be 64 bit aligned too. This includes some 32 bit
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  120) 	  architectures which can do 64 bit accesses, as well as 64 bit
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  121) 	  architectures without unaligned access.
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  122) 
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  123) 	  This symbol should be selected by an architecture if 64 bit
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  124) 	  accesses are required to be 64 bit aligned in this way even
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  125) 	  though it is not a 64 bit architecture.
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  126) 
ba1a297d78f47 (Lukas Bulwahn              2021-01-19 10:53:26 +0100  127) 	  See Documentation/core-api/unaligned-memory-access.rst for
ba1a297d78f47 (Lukas Bulwahn              2021-01-19 10:53:26 +0100  128) 	  more information on the topic of unaligned memory accesses.
adab66b71abfe (Steven Rostedt (VMware)    2020-12-14 12:33:51 -0500  129) 
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  130) config HAVE_EFFICIENT_UNALIGNED_ACCESS
9ba16087d9f99 (Jan Beulich                2008-10-15 22:01:38 -0700  131) 	bool
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  132) 	help
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  133) 	  Some architectures are unable to perform unaligned accesses
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  134) 	  without the use of get_unaligned/put_unaligned. Others are
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  135) 	  unable to perform such accesses efficiently (e.g. trap on
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  136) 	  unaligned access and require fixing it up in the exception
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  137) 	  handler.)
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  138) 
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  139) 	  This symbol should be selected by an architecture if it can
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  140) 	  perform unaligned accesses efficiently to allow different
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  141) 	  code paths to be selected for these cases. Some network
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  142) 	  drivers, for example, could opt to not fix up alignment
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  143) 	  problems with received packets if doing so would not help
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  144) 	  much.
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  145) 
c9b54d6f362c0 (Mauro Carvalho Chehab      2020-06-23 15:31:38 +0200  146) 	  See Documentation/core-api/unaligned-memory-access.rst for more
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  147) 	  information on the topic of unaligned memory accesses.
58340a07c194e (Johannes Berg              2008-07-25 01:45:33 -0700  148) 
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  149) config ARCH_USE_BUILTIN_BSWAP
24b54fee106d8 (Krzysztof Kozlowski        2019-12-04 16:50:26 -0800  150) 	bool
24b54fee106d8 (Krzysztof Kozlowski        2019-12-04 16:50:26 -0800  151) 	help
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  152) 	 Modern versions of GCC (since 4.4) have builtin functions
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  153) 	 for handling byte-swapping. Using these, instead of the old
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  154) 	 inline assembler that the architecture code provides in the
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  155) 	 __arch_bswapXX() macros, allows the compiler to see what's
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  156) 	 happening and offers more opportunity for optimisation. In
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  157) 	 particular, the compiler will be able to combine the byteswap
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  158) 	 with a nearby load or store and use load-and-swap or
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  159) 	 store-and-swap instructions if the architecture has them. It
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  160) 	 should almost *never* result in code which is worse than the
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  161) 	 hand-coded assembler in <asm/swab.h>.  But just in case it
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  162) 	 does, the use of the builtins is optional.
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  163) 
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  164) 	 Any architecture with load-and-swap or store-and-swap
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  165) 	 instructions should set this. And it shouldn't hurt to set it
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  166) 	 on architectures that don't have such instructions.
cf66bb93e0f75 (David Woodhouse            2012-12-03 16:25:40 +0000  167) 
9edddaa200df1 (Ananth N Mavinakayanahalli 2008-03-04 14:28:37 -0800  168) config KRETPROBES
9edddaa200df1 (Ananth N Mavinakayanahalli 2008-03-04 14:28:37 -0800  169) 	def_bool y
9edddaa200df1 (Ananth N Mavinakayanahalli 2008-03-04 14:28:37 -0800  170) 	depends on KPROBES && HAVE_KRETPROBES
9edddaa200df1 (Ananth N Mavinakayanahalli 2008-03-04 14:28:37 -0800  171) 
7c68af6e32c73 (Avi Kivity                 2009-09-19 09:40:22 +0300  172) config USER_RETURN_NOTIFIER
7c68af6e32c73 (Avi Kivity                 2009-09-19 09:40:22 +0300  173) 	bool
7c68af6e32c73 (Avi Kivity                 2009-09-19 09:40:22 +0300  174) 	depends on HAVE_USER_RETURN_NOTIFIER
7c68af6e32c73 (Avi Kivity                 2009-09-19 09:40:22 +0300  175) 	help
7c68af6e32c73 (Avi Kivity                 2009-09-19 09:40:22 +0300  176) 	  Provide a kernel-internal notification when a cpu is about to
7c68af6e32c73 (Avi Kivity                 2009-09-19 09:40:22 +0300  177) 	  switch to user mode.
7c68af6e32c73 (Avi Kivity                 2009-09-19 09:40:22 +0300  178) 
28b2ee20c7cba (Rik van Riel               2008-07-23 21:27:05 -0700  179) config HAVE_IOREMAP_PROT
9ba16087d9f99 (Jan Beulich                2008-10-15 22:01:38 -0700  180) 	bool
28b2ee20c7cba (Rik van Riel               2008-07-23 21:27:05 -0700  181) 
125e564582cbc (Mathieu Desnoyers          2008-02-02 15:10:36 -0500  182) config HAVE_KPROBES
9ba16087d9f99 (Jan Beulich                2008-10-15 22:01:38 -0700  183) 	bool
9edddaa200df1 (Ananth N Mavinakayanahalli 2008-03-04 14:28:37 -0800  184) 
9edddaa200df1 (Ananth N Mavinakayanahalli 2008-03-04 14:28:37 -0800  185) config HAVE_KRETPROBES
9ba16087d9f99 (Jan Beulich                2008-10-15 22:01:38 -0700  186) 	bool
74bc7ceebfa1c (Arthur Kepner              2008-04-29 01:00:30 -0700  187) 
afd66255b9a48 (Masami Hiramatsu           2010-02-25 08:34:07 -0500  188) config HAVE_OPTPROBES
afd66255b9a48 (Masami Hiramatsu           2010-02-25 08:34:07 -0500  189) 	bool
d314d74c695f9 (Cong Wang                  2012-03-23 15:01:51 -0700  190) 
e7dbfe349d12e (Masami Hiramatsu           2012-09-28 17:15:20 +0900  191) config HAVE_KPROBES_ON_FTRACE
e7dbfe349d12e (Masami Hiramatsu           2012-09-28 17:15:20 +0900  192) 	bool
e7dbfe349d12e (Masami Hiramatsu           2012-09-28 17:15:20 +0900  193) 
540adea3809f6 (Masami Hiramatsu           2018-01-13 02:55:03 +0900  194) config HAVE_FUNCTION_ERROR_INJECTION
9802d86585db9 (Josef Bacik                2017-12-11 11:36:48 -0500  195) 	bool
9802d86585db9 (Josef Bacik                2017-12-11 11:36:48 -0500  196) 
42a0bb3f71383 (Petr Mladek                2016-05-20 17:00:33 -0700  197) config HAVE_NMI
42a0bb3f71383 (Petr Mladek                2016-05-20 17:00:33 -0700  198) 	bool
42a0bb3f71383 (Petr Mladek                2016-05-20 17:00:33 -0700  199) 
4aae683f13277 (Masahiro Yamada            2021-07-31 14:22:32 +0900  200) config TRACE_IRQFLAGS_SUPPORT
4aae683f13277 (Masahiro Yamada            2021-07-31 14:22:32 +0900  201) 	bool
4aae683f13277 (Masahiro Yamada            2021-07-31 14:22:32 +0900  202) 
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  203) #
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  204) # An arch should select this if it provides all these things:
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  205) #
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  206) #	task_pt_regs()		in asm/processor.h or asm/ptrace.h
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  207) #	arch_has_single_step()	if there is hardware single-step support
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  208) #	arch_has_block_step()	if there is hardware block-step support
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  209) #	asm/syscall.h		supplying asm-generic/syscall.h interface
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  210) #	linux/regset.h		user_regset interfaces
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  211) #	CORE_DUMP_USE_REGSET	#define'd in linux/elf.h
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  212) #	TIF_SYSCALL_TRACE	calls tracehook_report_syscall_{entry,exit}
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  213) #	TIF_NOTIFY_RESUME	calls tracehook_notify_resume()
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  214) #	signal delivery		calls tracehook_signal_handler()
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  215) #
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  216) config HAVE_ARCH_TRACEHOOK
9ba16087d9f99 (Jan Beulich                2008-10-15 22:01:38 -0700  217) 	bool
1f5a4ad97a0e7 (Roland McGrath             2008-07-25 19:45:57 -0700  218) 
c64be2bb1c6eb (Marek Szyprowski           2011-12-29 13:09:51 +0100  219) config HAVE_DMA_CONTIGUOUS
c64be2bb1c6eb (Marek Szyprowski           2011-12-29 13:09:51 +0100  220) 	bool
c64be2bb1c6eb (Marek Szyprowski           2011-12-29 13:09:51 +0100  221) 
29d5e0476e1c4 (Thomas Gleixner            2012-04-20 13:05:45 +0000  222) config GENERIC_SMP_IDLE_THREAD
24b54fee106d8 (Krzysztof Kozlowski        2019-12-04 16:50:26 -0800  223) 	bool
29d5e0476e1c4 (Thomas Gleixner            2012-04-20 13:05:45 +0000  224) 
485cf5dac2966 (Kevin Hilman               2013-04-24 17:19:13 -0700  225) config GENERIC_IDLE_POLL_SETUP
24b54fee106d8 (Krzysztof Kozlowski        2019-12-04 16:50:26 -0800  226) 	bool
485cf5dac2966 (Kevin Hilman               2013-04-24 17:19:13 -0700  227) 
6974f0c4555e2 (Daniel Micay               2017-07-12 14:36:10 -0700  228) config ARCH_HAS_FORTIFY_SOURCE
6974f0c4555e2 (Daniel Micay               2017-07-12 14:36:10 -0700  229) 	bool
6974f0c4555e2 (Daniel Micay               2017-07-12 14:36:10 -0700  230) 	help
6974f0c4555e2 (Daniel Micay               2017-07-12 14:36:10 -0700  231) 	  An architecture should select this when it can successfully
6974f0c4555e2 (Daniel Micay               2017-07-12 14:36:10 -0700  232) 	  build and run with CONFIG_FORTIFY_SOURCE.
6974f0c4555e2 (Daniel Micay               2017-07-12 14:36:10 -0700  233) 
d8ae8a3765bfa (Christoph Hellwig          2019-05-13 17:18:30 -0700  234) #
d8ae8a3765bfa (Christoph Hellwig          2019-05-13 17:18:30 -0700  235) # Select if the arch provides a historic keepinit alias for the retain_initrd
d8ae8a3765bfa (Christoph Hellwig          2019-05-13 17:18:30 -0700  236) # command line option
d8ae8a3765bfa (Christoph Hellwig          2019-05-13 17:18:30 -0700  237) #
d8ae8a3765bfa (Christoph Hellwig          2019-05-13 17:18:30 -0700  238) config ARCH_HAS_KEEPINITRD
d8ae8a3765bfa (Christoph Hellwig          2019-05-13 17:18:30 -0700  239) 	bool
d8ae8a3765bfa (Christoph Hellwig          2019-05-13 17:18:30 -0700  240) 
d2852a2240509 (Daniel Borkmann            2017-02-21 16:09:33 +0100  241) # Select if arch has all set_memory_ro/rw/x/nx() functions in asm/cacheflush.h
d2852a2240509 (Daniel Borkmann            2017-02-21 16:09:33 +0100  242) config ARCH_HAS_SET_MEMORY
d2852a2240509 (Daniel Borkmann            2017-02-21 16:09:33 +0100  243) 	bool
d2852a2240509 (Daniel Borkmann            2017-02-21 16:09:33 +0100  244) 
d253ca0c3865a (Rick Edgecombe             2019-04-25 17:11:34 -0700  245) # Select if arch has all set_direct_map_invalid/default() functions
d253ca0c3865a (Rick Edgecombe             2019-04-25 17:11:34 -0700  246) config ARCH_HAS_SET_DIRECT_MAP
d253ca0c3865a (Rick Edgecombe             2019-04-25 17:11:34 -0700  247) 	bool
d253ca0c3865a (Rick Edgecombe             2019-04-25 17:11:34 -0700  248) 
c30700db9eaab (Christoph Hellwig          2019-06-03 08:43:51 +0200  249) #
fa7e2247c5729 (Christoph Hellwig          2020-02-21 15:55:43 -0800  250) # Select if the architecture provides the arch_dma_set_uncached symbol to
a86ecfa6a873e (Colin Ian King             2020-12-14 19:03:44 -0800  251) # either provide an uncached segment alias for a DMA allocation, or
fa7e2247c5729 (Christoph Hellwig          2020-02-21 15:55:43 -0800  252) # to remap the page tables in place.
c30700db9eaab (Christoph Hellwig          2019-06-03 08:43:51 +0200  253) #
fa7e2247c5729 (Christoph Hellwig          2020-02-21 15:55:43 -0800  254) config ARCH_HAS_DMA_SET_UNCACHED
c30700db9eaab (Christoph Hellwig          2019-06-03 08:43:51 +0200  255) 	bool
c30700db9eaab (Christoph Hellwig          2019-06-03 08:43:51 +0200  256) 
999a5d1203baa (Christoph Hellwig          2020-02-21 12:35:05 -0800  257) #
999a5d1203baa (Christoph Hellwig          2020-02-21 12:35:05 -0800  258) # Select if the architectures provides the arch_dma_clear_uncached symbol
999a5d1203baa (Christoph Hellwig          2020-02-21 12:35:05 -0800  259) # to undo an in-place page table remap for uncached access.
999a5d1203baa (Christoph Hellwig          2020-02-21 12:35:05 -0800  260) #
999a5d1203baa (Christoph Hellwig          2020-02-21 12:35:05 -0800  261) config ARCH_HAS_DMA_CLEAR_UNCACHED
c30700db9eaab (Christoph Hellwig          2019-06-03 08:43:51 +0200  262) 	bool
c30700db9eaab (Christoph Hellwig          2019-06-03 08:43:51 +0200  263) 
0500871f21b23 (David Howells              2018-01-02 15:12:01 +0000  264) # Select if arch init_task must go in the __init_task_data section
0500871f21b23 (David Howells              2018-01-02 15:12:01 +0000  265) config ARCH_TASK_STRUCT_ON_STACK
24b54fee106d8 (Krzysztof Kozlowski        2019-12-04 16:50:26 -0800  266) 	bool
a4a2eb490e38a (Thomas Gleixner            2012-05-03 09:02:48 +0000  267) 
f5e10287367dc (Thomas Gleixner            2012-05-05 15:05:48 +0000  268) # Select if arch has its private alloc_task_struct() function
f5e10287367dc (Thomas Gleixner            2012-05-05 15:05:48 +0000  269) config ARCH_TASK_STRUCT_ALLOCATOR
f5e10287367dc (Thomas Gleixner            2012-05-05 15:05:48 +0000  270) 	bool
f5e10287367dc (Thomas Gleixner            2012-05-05 15:05:48 +0000  271) 
5905429ad8565 (Kees Cook                  2017-08-16 13:00:58 -0700  272) config HAVE_ARCH_THREAD_STRUCT_WHITELIST
5905429ad8565 (Kees Cook                  2017-08-16 13:00:58 -0700  273) 	bool
5905429ad8565 (Kees Cook                  2017-08-16 13:00:58 -0700  274) 	depends on !ARCH_TASK_STRUCT_ALLOCATOR
5905429ad8565 (Kees Cook                  2017-08-16 13:00:58 -0700  275) 	help
5905429ad8565 (Kees Cook                  2017-08-16 13:00:58 -0700  276) 	  An architecture should select this to provide hardened usercopy
5905429ad8565 (Kees Cook                  2017-08-16 13:00:58 -0700  277) 	  knowledge about what region of the thread_struct should be
5905429ad8565 (Kees Cook                  2017-08-16 13:00:58 -0700  278) 	  whitelisted for copying to userspace. Normally this is only the
5905429ad8565 (Kees Cook                  2017-08-16 13:00:58 -0700  279) 	  FPU registers. Specifically, arch_thread_struct_whitelist()
5905429ad8565 (Kees Cook                  2017-08-16 13:00:58 -0700  280) 	  should be implemented. Without this, the entire thread_struct
5905429ad8565 (Kees Cook                  2017-08-16 13:00:58 -0700  281) 	  field in task_struct will be left whitelisted.
5905429ad8565 (Kees Cook                  2017-08-16 13:00:58 -0700  282) 
b235beea9e996 (Linus Torvalds             2016-06-24 15:09:37 -0700  283) # Select if arch has its private alloc_thread_stack() function
b235beea9e996 (Linus Torvalds             2016-06-24 15:09:37 -0700  284) config ARCH_THREAD_STACK_ALLOCATOR
f5e10287367dc (Thomas Gleixner            2012-05-05 15:05:48 +0000  285) 	bool
f5e10287367dc (Thomas Gleixner            2012-05-05 15:05:48 +0000  286) 
5aaeb5c01c5b6 (Ingo Molnar                2015-07-17 12:28:12 +0200  287) # Select if arch wants to size task_struct dynamically via arch_task_struct_size:
5aaeb5c01c5b6 (Ingo Molnar                2015-07-17 12:28:12 +0200  288) config ARCH_WANTS_DYNAMIC_TASK_STRUCT
5aaeb5c01c5b6 (Ingo Molnar                2015-07-17 12:28:12 +0200  289) 	bool
5aaeb5c01c5b6 (Ingo Molnar                2015-07-17 12:28:12 +0200  290) 
51c2ee6d121ce (Nick Desaulniers           2021-06-21 16:18:22 -0700  291) config ARCH_WANTS_NO_INSTR
51c2ee6d121ce (Nick Desaulniers           2021-06-21 16:18:22 -0700  292) 	bool
51c2ee6d121ce (Nick Desaulniers           2021-06-21 16:18:22 -0700  293) 	help
51c2ee6d121ce (Nick Desaulniers           2021-06-21 16:18:22 -0700  294) 	  An architecture should select this if the noinstr macro is being used on
51c2ee6d121ce (Nick Desaulniers           2021-06-21 16:18:22 -0700  295) 	  functions to denote that the toolchain should avoid instrumenting such
51c2ee6d121ce (Nick Desaulniers           2021-06-21 16:18:22 -0700  296) 	  functions and is required for correctness.
51c2ee6d121ce (Nick Desaulniers           2021-06-21 16:18:22 -0700  297) 
942fa985e9f16 (Yury Norov                 2018-05-16 11:18:49 +0300  298) config ARCH_32BIT_OFF_T
942fa985e9f16 (Yury Norov                 2018-05-16 11:18:49 +0300  299) 	bool
942fa985e9f16 (Yury Norov                 2018-05-16 11:18:49 +0300  300) 	depends on !64BIT
942fa985e9f16 (Yury Norov                 2018-05-16 11:18:49 +0300  301) 	help
942fa985e9f16 (Yury Norov                 2018-05-16 11:18:49 +0300  302) 	  All new 32-bit architectures should have 64-bit off_t type on
942fa985e9f16 (Yury Norov                 2018-05-16 11:18:49 +0300  303) 	  userspace side which corresponds to the loff_t kernel type. This
942fa985e9f16 (Yury Norov                 2018-05-16 11:18:49 +0300  304) 	  is the requirement for modern ABIs. Some existing architectures
942fa985e9f16 (Yury Norov                 2018-05-16 11:18:49 +0300  305) 	  still support 32-bit off_t. This option is enabled for all such
942fa985e9f16 (Yury Norov                 2018-05-16 11:18:49 +0300  306) 	  architectures explicitly.
942fa985e9f16 (Yury Norov                 2018-05-16 11:18:49 +0300  307) 
96c0a6a72d181 (Heiko Carstens             2021-02-10 21:51:02 +0100  308) # Selected by 64 bit architectures which have a 32 bit f_tinode in struct ustat
96c0a6a72d181 (Heiko Carstens             2021-02-10 21:51:02 +0100  309) config ARCH_32BIT_USTAT_F_TINODE
96c0a6a72d181 (Heiko Carstens             2021-02-10 21:51:02 +0100  310) 	bool
96c0a6a72d181 (Heiko Carstens             2021-02-10 21:51:02 +0100  311) 
2ff2b7ec65dce (Masahiro Yamada            2019-08-19 14:54:20 +0900  312) config HAVE_ASM_MODVERSIONS
2ff2b7ec65dce (Masahiro Yamada            2019-08-19 14:54:20 +0900  313) 	bool
2ff2b7ec65dce (Masahiro Yamada            2019-08-19 14:54:20 +0900  314) 	help
a86ecfa6a873e (Colin Ian King             2020-12-14 19:03:44 -0800  315) 	  This symbol should be selected by an architecture if it provides
2ff2b7ec65dce (Masahiro Yamada            2019-08-19 14:54:20 +0900  316) 	  <asm/asm-prototypes.h> to support the module versioning for symbols
2ff2b7ec65dce (Masahiro Yamada            2019-08-19 14:54:20 +0900  317) 	  exported from assembly code.
2ff2b7ec65dce (Masahiro Yamada            2019-08-19 14:54:20 +0900  318) 
f850c30c8b426 (Heiko Carstens             2010-02-10 17:25:17 +0100  319) config HAVE_REGS_AND_STACK_ACCESS_API
f850c30c8b426 (Heiko Carstens             2010-02-10 17:25:17 +0100  320) 	bool
e01292b1fd68f (Heiko Carstens             2010-02-18 14:25:21 +0100  321) 	help
a86ecfa6a873e (Colin Ian King             2020-12-14 19:03:44 -0800  322) 	  This symbol should be selected by an architecture if it supports
e01292b1fd68f (Heiko Carstens             2010-02-18 14:25:21 +0100  323) 	  the API needed to access registers and stack entries from pt_regs,
e01292b1fd68f (Heiko Carstens             2010-02-18 14:25:21 +0100  324) 	  declared in asm/ptrace.h
e01292b1fd68f (Heiko Carstens             2010-02-18 14:25:21 +0100  325) 	  For example the kprobes-based event tracer needs this API.
f850c30c8b426 (Heiko Carstens             2010-02-10 17:25:17 +0100  326) 
d7822b1e24f2d (Mathieu Desnoyers          2018-06-02 08:43:54 -0400  327) config HAVE_RSEQ
d7822b1e24f2d (Mathieu Desnoyers          2018-06-02 08:43:54 -0400  328) 	bool
d7822b1e24f2d (Mathieu Desnoyers          2018-06-02 08:43:54 -0400  329) 	depends on HAVE_REGS_AND_STACK_ACCESS_API
d7822b1e24f2d (Mathieu Desnoyers          2018-06-02 08:43:54 -0400  330) 	help
d7822b1e24f2d (Mathieu Desnoyers          2018-06-02 08:43:54 -0400  331) 	  This symbol should be selected by an architecture if it
d7822b1e24f2d (Mathieu Desnoyers          2018-06-02 08:43:54 -0400  332) 	  supports an implementation of restartable sequences.
d7822b1e24f2d (Mathieu Desnoyers          2018-06-02 08:43:54 -0400  333) 
3c88ee194c288 (Masami Hiramatsu           2018-04-25 21:20:57 +0900  334) config HAVE_FUNCTION_ARG_ACCESS_API
3c88ee194c288 (Masami Hiramatsu           2018-04-25 21:20:57 +0900  335) 	bool
3c88ee194c288 (Masami Hiramatsu           2018-04-25 21:20:57 +0900  336) 	help
a86ecfa6a873e (Colin Ian King             2020-12-14 19:03:44 -0800  337) 	  This symbol should be selected by an architecture if it supports
3c88ee194c288 (Masami Hiramatsu           2018-04-25 21:20:57 +0900  338) 	  the API needed to access function arguments from pt_regs,
3c88ee194c288 (Masami Hiramatsu           2018-04-25 21:20:57 +0900  339) 	  declared in asm/ptrace.h
3c88ee194c288 (Masami Hiramatsu           2018-04-25 21:20:57 +0900  340) 
62a038d34db26 (K.Prasad                   2009-06-01 23:43:33 +0530  341) config HAVE_HW_BREAKPOINT
62a038d34db26 (K.Prasad                   2009-06-01 23:43:33 +0530  342) 	bool
99e8c5a3b875a (Frederic Weisbecker        2009-12-17 01:33:54 +0100  343) 	depends on PERF_EVENTS
62a038d34db26 (K.Prasad                   2009-06-01 23:43:33 +0530  344) 
0102752e4c9e0 (Frederic Weisbecker        2010-04-11 18:55:56 +0200  345) config HAVE_MIXED_BREAKPOINTS_REGS
0102752e4c9e0 (Frederic Weisbecker        2010-04-11 18:55:56 +0200  346) 	bool
0102752e4c9e0 (Frederic Weisbecker        2010-04-11 18:55:56 +0200  347) 	depends on HAVE_HW_BREAKPOINT
0102752e4c9e0 (Frederic Weisbecker        2010-04-11 18:55:56 +0200  348) 	help
0102752e4c9e0 (Frederic Weisbecker        2010-04-11 18:55:56 +0200  349) 	  Depending on the arch implementation of hardware breakpoints,
0102752e4c9e0 (Frederic Weisbecker        2010-04-11 18:55:56 +0200  350) 	  some of them have separate registers for data and instruction
0102752e4c9e0 (Frederic Weisbecker        2010-04-11 18:55:56 +0200  351) 	  breakpoints addresses, others have mixed registers to store
0102752e4c9e0 (Frederic Weisbecker        2010-04-11 18:55:56 +0200  352) 	  them but define the access type in a control register.
0102752e4c9e0 (Frederic Weisbecker        2010-04-11 18:55:56 +0200  353) 	  Select this option if your arch implements breakpoints under the
0102752e4c9e0 (Frederic Weisbecker        2010-04-11 18:55:56 +0200  354) 	  latter fashion.
0102752e4c9e0 (Frederic Weisbecker        2010-04-11 18:55:56 +0200  355) 
7c68af6e32c73 (Avi Kivity                 2009-09-19 09:40:22 +0300  356) config HAVE_USER_RETURN_NOTIFIER
7c68af6e32c73 (Avi Kivity                 2009-09-19 09:40:22 +0300  357) 	bool
a1922ed661ab2 (Ingo Molnar                2009-09-07 08:19:51 +0200  358) 
c01d4323309a9 (Frederic Weisbecker        2010-05-15 22:57:48 +0200  359) config HAVE_PERF_EVENTS_NMI
c01d4323309a9 (Frederic Weisbecker        2010-05-15 22:57:48 +0200  360) 	bool
23637d477c1f5 (Frederic Weisbecker        2010-05-15 23:15:20 +0200  361) 	help
23637d477c1f5 (Frederic Weisbecker        2010-05-15 23:15:20 +0200  362) 	  System hardware can generate an NMI using the perf event
23637d477c1f5 (Frederic Weisbecker        2010-05-15 23:15:20 +0200  363) 	  subsystem.  Also has support for calculating CPU cycle events
23637d477c1f5 (Frederic Weisbecker        2010-05-15 23:15:20 +0200  364) 	  to determine how many clock cycles in a given period.
c01d4323309a9 (Frederic Weisbecker        2010-05-15 22:57:48 +0200  365) 
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  366) config HAVE_HARDLOCKUP_DETECTOR_PERF
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  367) 	bool
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  368) 	depends on HAVE_PERF_EVENTS_NMI
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  369) 	help
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  370) 	  The arch chooses to use the generic perf-NMI-based hardlockup
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  371) 	  detector. Must define HAVE_PERF_EVENTS_NMI.
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  372) 
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  373) config HAVE_NMI_WATCHDOG
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  374) 	depends on HAVE_NMI
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  375) 	bool
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  376) 	help
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  377) 	  The arch provides a low level NMI watchdog. It provides
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  378) 	  asm/nmi.h, and defines its own arch_touch_nmi_watchdog().
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  379) 
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  380) config HAVE_HARDLOCKUP_DETECTOR_ARCH
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  381) 	bool
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  382) 	select HAVE_NMI_WATCHDOG
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  383) 	help
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  384) 	  The arch chooses to provide its own hardlockup detector, which is
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  385) 	  a superset of the HAVE_NMI_WATCHDOG. It also conforms to config
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  386) 	  interfaces and parameters provided by hardlockup detector subsystem.
05a4a95279311 (Nicholas Piggin            2017-07-12 14:35:46 -0700  387) 
c5e63197db519 (Jiri Olsa                  2012-08-07 15:20:36 +0200  388) config HAVE_PERF_REGS
c5e63197db519 (Jiri Olsa                  2012-08-07 15:20:36 +0200  389) 	bool
c5e63197db519 (Jiri Olsa                  2012-08-07 15:20:36 +0200  390) 	help
c5e63197db519 (Jiri Olsa                  2012-08-07 15:20:36 +0200  391) 	  Support selective register dumps for perf events. This includes
c5e63197db519 (Jiri Olsa                  2012-08-07 15:20:36 +0200  392) 	  bit-mapping of each registers and a unique architecture id.
c5e63197db519 (Jiri Olsa                  2012-08-07 15:20:36 +0200  393) 
c5ebcedb566ef (Jiri Olsa                  2012-08-07 15:20:40 +0200  394) config HAVE_PERF_USER_STACK_DUMP
c5ebcedb566ef (Jiri Olsa                  2012-08-07 15:20:40 +0200  395) 	bool
c5ebcedb566ef (Jiri Olsa                  2012-08-07 15:20:40 +0200  396) 	help
c5ebcedb566ef (Jiri Olsa                  2012-08-07 15:20:40 +0200  397) 	  Support user stack dumps for perf event samples. This needs
c5ebcedb566ef (Jiri Olsa                  2012-08-07 15:20:40 +0200  398) 	  access to the user stack pointer which is not unified across
c5ebcedb566ef (Jiri Olsa                  2012-08-07 15:20:40 +0200  399) 	  architectures.
c5ebcedb566ef (Jiri Olsa                  2012-08-07 15:20:40 +0200  400) 
bf5438fca2950 (Jason Baron                2010-09-17 11:09:00 -0400  401) config HAVE_ARCH_JUMP_LABEL
bf5438fca2950 (Jason Baron                2010-09-17 11:09:00 -0400  402) 	bool
bf5438fca2950 (Jason Baron                2010-09-17 11:09:00 -0400  403) 
50ff18ab497aa (Ard Biesheuvel             2018-09-18 23:51:37 -0700  404) config HAVE_ARCH_JUMP_LABEL_RELATIVE
50ff18ab497aa (Ard Biesheuvel             2018-09-18 23:51:37 -0700  405) 	bool
50ff18ab497aa (Ard Biesheuvel             2018-09-18 23:51:37 -0700  406) 
0d6e24d430ef2 (Peter Zijlstra             2020-02-03 17:37:11 -0800  407) config MMU_GATHER_TABLE_FREE
0d6e24d430ef2 (Peter Zijlstra             2020-02-03 17:37:11 -0800  408) 	bool
0d6e24d430ef2 (Peter Zijlstra             2020-02-03 17:37:11 -0800  409) 
ff2e6d7259f82 (Peter Zijlstra             2020-02-03 17:37:02 -0800  410) config MMU_GATHER_RCU_TABLE_FREE
267239116987d (Peter Zijlstra             2011-05-24 17:12:00 -0700  411) 	bool
0d6e24d430ef2 (Peter Zijlstra             2020-02-03 17:37:11 -0800  412) 	select MMU_GATHER_TABLE_FREE
267239116987d (Peter Zijlstra             2011-05-24 17:12:00 -0700  413) 
3af4bd033759c (Peter Zijlstra             2020-02-03 17:37:05 -0800  414) config MMU_GATHER_PAGE_SIZE
ed6a79352cad0 (Peter Zijlstra             2018-08-31 14:46:08 +0200  415) 	bool
ed6a79352cad0 (Peter Zijlstra             2018-08-31 14:46:08 +0200  416) 
27796d03c9c4b (Peter Zijlstra             2020-02-03 17:36:59 -0800  417) config MMU_GATHER_NO_RANGE
27796d03c9c4b (Peter Zijlstra             2020-02-03 17:36:59 -0800  418) 	bool
27796d03c9c4b (Peter Zijlstra             2020-02-03 17:36:59 -0800  419) 
580a586c409ab (Peter Zijlstra             2020-02-03 17:37:08 -0800  420) config MMU_GATHER_NO_GATHER
952a31c9e6fa9 (Martin Schwidefsky         2018-09-18 14:51:50 +0200  421) 	bool
0d6e24d430ef2 (Peter Zijlstra             2020-02-03 17:37:11 -0800  422) 	depends on MMU_GATHER_TABLE_FREE
952a31c9e6fa9 (Martin Schwidefsky         2018-09-18 14:51:50 +0200  423) 
d53c3dfb23c45 (Nicholas Piggin            2020-09-14 14:52:16 +1000  424) config ARCH_WANT_IRQS_OFF_ACTIVATE_MM
d53c3dfb23c45 (Nicholas Piggin            2020-09-14 14:52:16 +1000  425) 	bool
d53c3dfb23c45 (Nicholas Piggin            2020-09-14 14:52:16 +1000  426) 	help
d53c3dfb23c45 (Nicholas Piggin            2020-09-14 14:52:16 +1000  427) 	  Temporary select until all architectures can be converted to have
d53c3dfb23c45 (Nicholas Piggin            2020-09-14 14:52:16 +1000  428) 	  irqs disabled over activate_mm. Architectures that do IPI based TLB
d53c3dfb23c45 (Nicholas Piggin            2020-09-14 14:52:16 +1000  429) 	  shootdowns should enable this.
d53c3dfb23c45 (Nicholas Piggin            2020-09-14 14:52:16 +1000  430) 
df013ffb8119c (Huang Ying                 2011-07-13 13:14:22 +0800  431) config ARCH_HAVE_NMI_SAFE_CMPXCHG
df013ffb8119c (Huang Ying                 2011-07-13 13:14:22 +0800  432) 	bool
df013ffb8119c (Huang Ying                 2011-07-13 13:14:22 +0800  433) 
43570fd2f47ba (Heiko Carstens             2012-01-12 17:17:27 -0800  434) config HAVE_ALIGNED_STRUCT_PAGE
43570fd2f47ba (Heiko Carstens             2012-01-12 17:17:27 -0800  435) 	bool
43570fd2f47ba (Heiko Carstens             2012-01-12 17:17:27 -0800  436) 	help
43570fd2f47ba (Heiko Carstens             2012-01-12 17:17:27 -0800  437) 	  This makes sure that struct pages are double word aligned and that
43570fd2f47ba (Heiko Carstens             2012-01-12 17:17:27 -0800  438) 	  e.g. the SLUB allocator can perform double word atomic operations
43570fd2f47ba (Heiko Carstens             2012-01-12 17:17:27 -0800  439) 	  on a struct page for better performance. However selecting this
43570fd2f47ba (Heiko Carstens             2012-01-12 17:17:27 -0800  440) 	  might increase the size of a struct page by a word.
43570fd2f47ba (Heiko Carstens             2012-01-12 17:17:27 -0800  441) 
4156153c4dadd (Heiko Carstens             2012-01-12 17:17:30 -0800  442) config HAVE_CMPXCHG_LOCAL
4156153c4dadd (Heiko Carstens             2012-01-12 17:17:30 -0800  443) 	bool
4156153c4dadd (Heiko Carstens             2012-01-12 17:17:30 -0800  444) 
2565409fc0303 (Heiko Carstens             2012-01-12 17:17:33 -0800  445) config HAVE_CMPXCHG_DOUBLE
2565409fc0303 (Heiko Carstens             2012-01-12 17:17:33 -0800  446) 	bool
2565409fc0303 (Heiko Carstens             2012-01-12 17:17:33 -0800  447) 
77e5849688670 (Paul E. McKenney           2017-01-14 13:32:50 -0800  448) config ARCH_WEAK_RELEASE_ACQUIRE
77e5849688670 (Paul E. McKenney           2017-01-14 13:32:50 -0800  449) 	bool
77e5849688670 (Paul E. McKenney           2017-01-14 13:32:50 -0800  450) 
c1d7e01d7877a (Will Deacon                2012-07-30 14:42:46 -0700  451) config ARCH_WANT_IPC_PARSE_VERSION
c1d7e01d7877a (Will Deacon                2012-07-30 14:42:46 -0700  452) 	bool
c1d7e01d7877a (Will Deacon                2012-07-30 14:42:46 -0700  453) 
c1d7e01d7877a (Will Deacon                2012-07-30 14:42:46 -0700  454) config ARCH_WANT_COMPAT_IPC_PARSE_VERSION
c1d7e01d7877a (Will Deacon                2012-07-30 14:42:46 -0700  455) 	bool
c1d7e01d7877a (Will Deacon                2012-07-30 14:42:46 -0700  456) 
48b25c43e6eeb (Chris Metcalf              2012-03-15 13:13:38 -0400  457) config ARCH_WANT_OLD_COMPAT_IPC
c1d7e01d7877a (Will Deacon                2012-07-30 14:42:46 -0700  458) 	select ARCH_WANT_COMPAT_IPC_PARSE_VERSION
48b25c43e6eeb (Chris Metcalf              2012-03-15 13:13:38 -0400  459) 	bool
48b25c43e6eeb (Chris Metcalf              2012-03-15 13:13:38 -0400  460) 
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  461) config HAVE_ARCH_SECCOMP
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  462) 	bool
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  463) 	help
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  464) 	  An arch should select this symbol to support seccomp mode 1 (the fixed
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  465) 	  syscall policy), and must provide an overrides for __NR_seccomp_sigreturn,
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  466) 	  and compat syscalls if the asm-generic/seccomp.h defaults need adjustment:
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  467) 	  - __NR_seccomp_read_32
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  468) 	  - __NR_seccomp_write_32
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  469) 	  - __NR_seccomp_exit_32
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  470) 	  - __NR_seccomp_sigreturn_32
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  471) 
e2cfabdfd0756 (Will Drewry                2012-04-12 16:47:57 -0500  472) config HAVE_ARCH_SECCOMP_FILTER
e2cfabdfd0756 (Will Drewry                2012-04-12 16:47:57 -0500  473) 	bool
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  474) 	select HAVE_ARCH_SECCOMP
e2cfabdfd0756 (Will Drewry                2012-04-12 16:47:57 -0500  475) 	help
fb0fadf9b213f (Will Drewry                2012-04-12 16:48:02 -0500  476) 	  An arch should select this symbol if it provides all of these things:
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  477) 	  - all the requirements for HAVE_ARCH_SECCOMP
bb6ea4301a110 (Will Drewry                2012-04-12 16:48:01 -0500  478) 	  - syscall_get_arch()
bb6ea4301a110 (Will Drewry                2012-04-12 16:48:01 -0500  479) 	  - syscall_get_arguments()
bb6ea4301a110 (Will Drewry                2012-04-12 16:48:01 -0500  480) 	  - syscall_rollback()
bb6ea4301a110 (Will Drewry                2012-04-12 16:48:01 -0500  481) 	  - syscall_set_return_value()
fb0fadf9b213f (Will Drewry                2012-04-12 16:48:02 -0500  482) 	  - SIGSYS siginfo_t support
fb0fadf9b213f (Will Drewry                2012-04-12 16:48:02 -0500  483) 	  - secure_computing is called from a ptrace_event()-safe context
fb0fadf9b213f (Will Drewry                2012-04-12 16:48:02 -0500  484) 	  - secure_computing return value is checked and a return value of -1
fb0fadf9b213f (Will Drewry                2012-04-12 16:48:02 -0500  485) 	    results in the system call being skipped immediately.
48dc92b9fc392 (Kees Cook                  2014-06-25 16:08:24 -0700  486) 	  - seccomp syscall wired up
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  487) 	  - if !HAVE_SPARSE_SYSCALL_NR, have SECCOMP_ARCH_NATIVE,
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  488) 	    SECCOMP_ARCH_NATIVE_NR, SECCOMP_ARCH_NATIVE_NAME defined. If
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  489) 	    COMPAT is supported, have the SECCOMP_ARCH_COMPAT* defines too.
e2cfabdfd0756 (Will Drewry                2012-04-12 16:47:57 -0500  490) 
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  491) config SECCOMP
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  492) 	prompt "Enable seccomp to safely execute untrusted bytecode"
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  493) 	def_bool y
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  494) 	depends on HAVE_ARCH_SECCOMP
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  495) 	help
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  496) 	  This kernel feature is useful for number crunching applications
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  497) 	  that may need to handle untrusted bytecode during their
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  498) 	  execution. By using pipes or other transports made available
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  499) 	  to the process as file descriptors supporting the read/write
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  500) 	  syscalls, it's possible to isolate those applications in their
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  501) 	  own address space using seccomp. Once seccomp is enabled via
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  502) 	  prctl(PR_SET_SECCOMP) or the seccomp() syscall, it cannot be
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  503) 	  disabled and the task is only allowed to execute a few safe
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  504) 	  syscalls defined by each seccomp mode.
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  505) 
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  506) 	  If unsure, say Y.
282a181b1a0d6 (YiFei Zhu                  2020-09-24 07:44:16 -0500  507) 
e2cfabdfd0756 (Will Drewry                2012-04-12 16:47:57 -0500  508) config SECCOMP_FILTER
e2cfabdfd0756 (Will Drewry                2012-04-12 16:47:57 -0500  509) 	def_bool y
e2cfabdfd0756 (Will Drewry                2012-04-12 16:47:57 -0500  510) 	depends on HAVE_ARCH_SECCOMP_FILTER && SECCOMP && NET
e2cfabdfd0756 (Will Drewry                2012-04-12 16:47:57 -0500  511) 	help
e2cfabdfd0756 (Will Drewry                2012-04-12 16:47:57 -0500  512) 	  Enable tasks to build secure computing environments defined
e2cfabdfd0756 (Will Drewry                2012-04-12 16:47:57 -0500  513) 	  in terms of Berkeley Packet Filter programs which implement
e2cfabdfd0756 (Will Drewry                2012-04-12 16:47:57 -0500  514) 	  task-defined system call filtering polices.
e2cfabdfd0756 (Will Drewry                2012-04-12 16:47:57 -0500  515) 
5fb94e9ca333f (Mauro Carvalho Chehab      2018-05-08 15:14:57 -0300  516) 	  See Documentation/userspace-api/seccomp_filter.rst for details.
e2cfabdfd0756 (Will Drewry                2012-04-12 16:47:57 -0500  517) 
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  518) config SECCOMP_CACHE_DEBUG
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  519) 	bool "Show seccomp filter cache status in /proc/pid/seccomp_cache"
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  520) 	depends on SECCOMP_FILTER && !HAVE_SPARSE_SYSCALL_NR
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  521) 	depends on PROC_FS
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  522) 	help
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  523) 	  This enables the /proc/pid/seccomp_cache interface to monitor
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  524) 	  seccomp cache data. The file format is subject to change. Reading
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  525) 	  the file requires CAP_SYS_ADMIN.
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  526) 
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  527) 	  This option is for debugging only. Enabling presents the risk that
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  528) 	  an adversary may be able to infer the seccomp filter logic.
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  529) 
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  530) 	  If unsure, say N.
0d8315dddd289 (YiFei Zhu                  2020-11-11 07:33:54 -0600  531) 
afaef01c00153 (Alexander Popov            2018-08-17 01:16:58 +0300  532) config HAVE_ARCH_STACKLEAK
afaef01c00153 (Alexander Popov            2018-08-17 01:16:58 +0300  533) 	bool
afaef01c00153 (Alexander Popov            2018-08-17 01:16:58 +0300  534) 	help
afaef01c00153 (Alexander Popov            2018-08-17 01:16:58 +0300  535) 	  An architecture should select this if it has the code which
afaef01c00153 (Alexander Popov            2018-08-17 01:16:58 +0300  536) 	  fills the used part of the kernel stack with the STACKLEAK_POISON
afaef01c00153 (Alexander Popov            2018-08-17 01:16:58 +0300  537) 	  value before returning from system calls.
afaef01c00153 (Alexander Popov            2018-08-17 01:16:58 +0300  538) 
d148eac0e70f0 (Masahiro Yamada            2018-06-14 19:36:45 +0900  539) config HAVE_STACKPROTECTOR
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  540) 	bool
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  541) 	help
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  542) 	  An arch should select this symbol if:
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  543) 	  - it has implemented a stack canary (e.g. __stack_chk_guard)
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  544) 
050e9baa9dc9f (Linus Torvalds             2018-06-14 12:21:18 +0900  545) config STACKPROTECTOR
2a61f4747eeaa (Masahiro Yamada            2018-05-28 18:22:00 +0900  546) 	bool "Stack Protector buffer overflow detection"
d148eac0e70f0 (Masahiro Yamada            2018-06-14 19:36:45 +0900  547) 	depends on HAVE_STACKPROTECTOR
2a61f4747eeaa (Masahiro Yamada            2018-05-28 18:22:00 +0900  548) 	depends on $(cc-option,-fstack-protector)
2a61f4747eeaa (Masahiro Yamada            2018-05-28 18:22:00 +0900  549) 	default y
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  550) 	help
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  551) 	  This option turns on the "stack-protector" GCC feature. This
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  552) 	  feature puts, at the beginning of functions, a canary value on
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  553) 	  the stack just before the return address, and validates
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  554) 	  the value just before actually returning.  Stack based buffer
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  555) 	  overflows (that need to overwrite this return address) now also
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  556) 	  overwrite the canary, which gets detected and the attack is then
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  557) 	  neutralized via a kernel panic.
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  558) 
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  559) 	  Functions will have the stack-protector canary logic added if they
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  560) 	  have an 8-byte or larger character array on the stack.
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  561) 
19952a92037e7 (Kees Cook                  2013-12-19 11:35:58 -0800  562) 	  This feature requires gcc version 4.2 or above, or a distribution
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  563) 	  gcc with the feature backported ("-fstack-protector").
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  564) 
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  565) 	  On an x86 "defconfig" build, this feature adds canary checks to
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  566) 	  about 3% of all kernel functions, which increases kernel code size
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  567) 	  by about 0.3%.
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  568) 
050e9baa9dc9f (Linus Torvalds             2018-06-14 12:21:18 +0900  569) config STACKPROTECTOR_STRONG
2a61f4747eeaa (Masahiro Yamada            2018-05-28 18:22:00 +0900  570) 	bool "Strong Stack Protector"
050e9baa9dc9f (Linus Torvalds             2018-06-14 12:21:18 +0900  571) 	depends on STACKPROTECTOR
2a61f4747eeaa (Masahiro Yamada            2018-05-28 18:22:00 +0900  572) 	depends on $(cc-option,-fstack-protector-strong)
2a61f4747eeaa (Masahiro Yamada            2018-05-28 18:22:00 +0900  573) 	default y
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  574) 	help
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  575) 	  Functions will have the stack-protector canary logic added in any
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  576) 	  of the following conditions:
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  577) 
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  578) 	  - local variable's address used as part of the right hand side of an
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  579) 	    assignment or function argument
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  580) 	  - local variable is an array (or union containing an array),
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  581) 	    regardless of array type or length
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  582) 	  - uses register local variables
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  583) 
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  584) 	  This feature requires gcc version 4.9 or above, or a distribution
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  585) 	  gcc with the feature backported ("-fstack-protector-strong").
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  586) 
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  587) 	  On an x86 "defconfig" build, this feature adds canary checks to
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  588) 	  about 20% of all kernel functions, which increases the kernel code
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  589) 	  size by about 2%.
8779657d29c0e (Kees Cook                  2013-12-19 11:35:59 -0800  590) 
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  591) config ARCH_SUPPORTS_SHADOW_CALL_STACK
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  592) 	bool
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  593) 	help
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  594) 	  An architecture should select this if it supports Clang's Shadow
aa7a65ae5b8f4 (Will Deacon                2020-05-15 16:15:46 +0100  595) 	  Call Stack and implements runtime support for shadow stack
aa7a65ae5b8f4 (Will Deacon                2020-05-15 16:15:46 +0100  596) 	  switching.
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  597) 
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  598) config SHADOW_CALL_STACK
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  599) 	bool "Clang Shadow Call Stack"
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  600) 	depends on CC_IS_CLANG && ARCH_SUPPORTS_SHADOW_CALL_STACK
ddc9863e9e902 (Sami Tolvanen              2020-04-27 09:00:10 -0700  601) 	depends on DYNAMIC_FTRACE_WITH_REGS || !FUNCTION_GRAPH_TRACER
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  602) 	help
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  603) 	  This option enables Clang's Shadow Call Stack, which uses a
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  604) 	  shadow stack to protect function return addresses from being
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  605) 	  overwritten by an attacker. More information can be found in
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  606) 	  Clang's documentation:
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  607) 
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  608) 	    https://clang.llvm.org/docs/ShadowCallStack.html
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  609) 
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  610) 	  Note that security guarantees in the kernel differ from the
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  611) 	  ones documented for user space. The kernel must store addresses
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  612) 	  of shadow stacks in memory, which means an attacker capable of
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  613) 	  reading and writing arbitrary memory may be able to locate them
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  614) 	  and hijack control flow by modifying the stacks.
d08b9f0ca6605 (Sami Tolvanen              2020-04-27 09:00:07 -0700  615) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  616) config LTO
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  617) 	bool
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  618) 	help
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  619) 	  Selected if the kernel will be built using the compiler's LTO feature.
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  620) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  621) config LTO_CLANG
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  622) 	bool
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  623) 	select LTO
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  624) 	help
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  625) 	  Selected if the kernel will be built using Clang's LTO feature.
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  626) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  627) config ARCH_SUPPORTS_LTO_CLANG
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  628) 	bool
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  629) 	help
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  630) 	  An architecture should select this option if it supports:
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  631) 	  - compiling with Clang,
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  632) 	  - compiling inline assembly with Clang's integrated assembler,
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  633) 	  - and linking with LLD.
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  634) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  635) config ARCH_SUPPORTS_LTO_CLANG_THIN
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  636) 	bool
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  637) 	help
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  638) 	  An architecture should select this option if it can support Clang's
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  639) 	  ThinLTO mode.
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  640) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  641) config HAS_LTO_CLANG
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  642) 	def_bool y
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  643) 	# Clang >= 11: https://github.com/ClangBuiltLinux/linux/issues/510
ba64beb17493a (Masahiro Yamada            2021-03-16 01:12:56 +0900  644) 	depends on CC_IS_CLANG && CLANG_VERSION >= 110000 && LD_IS_LLD && AS_IS_LLVM
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  645) 	depends on $(success,$(NM) --help | head -n 1 | grep -qi llvm)
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  646) 	depends on $(success,$(AR) --help | head -n 1 | grep -qi llvm)
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  647) 	depends on ARCH_SUPPORTS_LTO_CLANG
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  648) 	depends on !FTRACE_MCOUNT_USE_RECORDMCOUNT
bf3c255150619 (Sami Tolvanen              2021-03-08 10:46:56 -0800  649) 	depends on !KASAN || KASAN_HW_TAGS
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  650) 	depends on !GCOV_KERNEL
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  651) 	help
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  652) 	  The compiler and Kconfig options support building with Clang's
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  653) 	  LTO.
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  654) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  655) choice
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  656) 	prompt "Link Time Optimization (LTO)"
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  657) 	default LTO_NONE
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  658) 	help
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  659) 	  This option enables Link Time Optimization (LTO), which allows the
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  660) 	  compiler to optimize binaries globally.
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  661) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  662) 	  If unsure, select LTO_NONE. Note that LTO is very resource-intensive
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  663) 	  so it's disabled by default.
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  664) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  665) config LTO_NONE
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  666) 	bool "None"
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  667) 	help
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  668) 	  Build the kernel normally, without Link Time Optimization (LTO).
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  669) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  670) config LTO_CLANG_FULL
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  671) 	bool "Clang Full LTO (EXPERIMENTAL)"
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  672) 	depends on HAS_LTO_CLANG
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  673) 	depends on !COMPILE_TEST
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  674) 	select LTO_CLANG
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  675) 	help
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  676)           This option enables Clang's full Link Time Optimization (LTO), which
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  677)           allows the compiler to optimize the kernel globally. If you enable
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  678)           this option, the compiler generates LLVM bitcode instead of ELF
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  679)           object files, and the actual compilation from bitcode happens at
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  680)           the LTO link step, which may take several minutes depending on the
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  681)           kernel configuration. More information can be found from LLVM's
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  682)           documentation:
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  683) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  684) 	    https://llvm.org/docs/LinkTimeOptimization.html
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  685) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  686) 	  During link time, this option can use a large amount of RAM, and
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  687) 	  may take much longer than the ThinLTO option.
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  688) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  689) config LTO_CLANG_THIN
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  690) 	bool "Clang ThinLTO (EXPERIMENTAL)"
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  691) 	depends on HAS_LTO_CLANG && ARCH_SUPPORTS_LTO_CLANG_THIN
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  692) 	select LTO_CLANG
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  693) 	help
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  694) 	  This option enables Clang's ThinLTO, which allows for parallel
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  695) 	  optimization and faster incremental compiles compared to the
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  696) 	  CONFIG_LTO_CLANG_FULL option. More information can be found
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  697) 	  from Clang's documentation:
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  698) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  699) 	    https://clang.llvm.org/docs/ThinLTO.html
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  700) 
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  701) 	  If unsure, say Y.
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  702) endchoice
dc5723b02e523 (Sami Tolvanen              2020-12-11 10:46:19 -0800  703) 
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  704) config ARCH_SUPPORTS_CFI_CLANG
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  705) 	bool
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  706) 	help
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  707) 	  An architecture should select this option if it can support Clang's
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  708) 	  Control-Flow Integrity (CFI) checking.
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  709) 
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  710) config CFI_CLANG
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  711) 	bool "Use Clang's Control Flow Integrity (CFI)"
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  712) 	depends on LTO_CLANG && ARCH_SUPPORTS_CFI_CLANG
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  713) 	# Clang >= 12:
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  714) 	# - https://bugs.llvm.org/show_bug.cgi?id=46258
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  715) 	# - https://bugs.llvm.org/show_bug.cgi?id=47479
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  716) 	depends on CLANG_VERSION >= 120000
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  717) 	select KALLSYMS
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  718) 	help
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  719) 	  This option enables Clang’s forward-edge Control Flow Integrity
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  720) 	  (CFI) checking, where the compiler injects a runtime check to each
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  721) 	  indirect function call to ensure the target is a valid function with
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  722) 	  the correct static type. This restricts possible call targets and
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  723) 	  makes it more difficult for an attacker to exploit bugs that allow
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  724) 	  the modification of stored function pointers. More information can be
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  725) 	  found from Clang's documentation:
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  726) 
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  727) 	    https://clang.llvm.org/docs/ControlFlowIntegrity.html
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  728) 
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  729) config CFI_CLANG_SHADOW
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  730) 	bool "Use CFI shadow to speed up cross-module checks"
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  731) 	default y
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  732) 	depends on CFI_CLANG && MODULES
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  733) 	help
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  734) 	  If you select this option, the kernel builds a fast look-up table of
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  735) 	  CFI check functions in loaded modules to reduce performance overhead.
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  736) 
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  737) 	  If unsure, say Y.
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  738) 
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  739) config CFI_PERMISSIVE
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  740) 	bool "Use CFI in permissive mode"
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  741) 	depends on CFI_CLANG
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  742) 	help
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  743) 	  When selected, Control Flow Integrity (CFI) violations result in a
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  744) 	  warning instead of a kernel panic. This option should only be used
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  745) 	  for finding indirect call type mismatches during development.
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  746) 
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  747) 	  If unsure, say N.
cf68fffb66d60 (Sami Tolvanen              2021-04-08 11:28:26 -0700  748) 
0f60a8efe4005 (Kees Cook                  2016-07-12 16:19:48 -0700  749) config HAVE_ARCH_WITHIN_STACK_FRAMES
0f60a8efe4005 (Kees Cook                  2016-07-12 16:19:48 -0700  750) 	bool
0f60a8efe4005 (Kees Cook                  2016-07-12 16:19:48 -0700  751) 	help
0f60a8efe4005 (Kees Cook                  2016-07-12 16:19:48 -0700  752) 	  An architecture should select this if it can walk the kernel stack
0f60a8efe4005 (Kees Cook                  2016-07-12 16:19:48 -0700  753) 	  frames to determine if an object is part of either the arguments
0f60a8efe4005 (Kees Cook                  2016-07-12 16:19:48 -0700  754) 	  or local variables (i.e. that it excludes saved return addresses,
0f60a8efe4005 (Kees Cook                  2016-07-12 16:19:48 -0700  755) 	  and similar) by implementing an inline arch_within_stack_frames(),
0f60a8efe4005 (Kees Cook                  2016-07-12 16:19:48 -0700  756) 	  which is used by CONFIG_HARDENED_USERCOPY.
0f60a8efe4005 (Kees Cook                  2016-07-12 16:19:48 -0700  757) 
91d1aa43d3050 (Frederic Weisbecker        2012-11-27 19:33:25 +0100  758) config HAVE_CONTEXT_TRACKING
2b1d5024e17be (Frederic Weisbecker        2012-07-11 20:26:30 +0200  759) 	bool
2b1d5024e17be (Frederic Weisbecker        2012-07-11 20:26:30 +0200  760) 	help
91d1aa43d3050 (Frederic Weisbecker        2012-11-27 19:33:25 +0100  761) 	  Provide kernel/user boundaries probes necessary for subsystems
91d1aa43d3050 (Frederic Weisbecker        2012-11-27 19:33:25 +0100  762) 	  that need it, such as userspace RCU extended quiescent state.
490f561b783da (Frederic Weisbecker        2020-01-27 16:41:52 +0100  763) 	  Syscalls need to be wrapped inside user_exit()-user_enter(), either
490f561b783da (Frederic Weisbecker        2020-01-27 16:41:52 +0100  764) 	  optimized behind static key or through the slow path using TIF_NOHZ
490f561b783da (Frederic Weisbecker        2020-01-27 16:41:52 +0100  765) 	  flag. Exceptions handlers must be wrapped as well. Irqs are already
490f561b783da (Frederic Weisbecker        2020-01-27 16:41:52 +0100  766) 	  protected inside rcu_irq_enter/rcu_irq_exit() but preemption or signal
490f561b783da (Frederic Weisbecker        2020-01-27 16:41:52 +0100  767) 	  handling on irq exit still need to be protected.
490f561b783da (Frederic Weisbecker        2020-01-27 16:41:52 +0100  768) 
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  769) config HAVE_CONTEXT_TRACKING_OFFSTACK
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  770) 	bool
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  771) 	help
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  772) 	  Architecture neither relies on exception_enter()/exception_exit()
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  773) 	  nor on schedule_user(). Also preempt_schedule_notrace() and
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  774) 	  preempt_schedule_irq() can't be called in a preemptible section
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  775) 	  while context tracking is CONTEXT_USER. This feature reflects a sane
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  776) 	  entry implementation where the following requirements are met on
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  777) 	  critical entry code, ie: before user_exit() or after user_enter():
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  778) 
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  779) 	  - Critical entry code isn't preemptible (or better yet:
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  780) 	    not interruptible).
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  781) 	  - No use of RCU read side critical sections, unless rcu_nmi_enter()
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  782) 	    got called.
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  783) 	  - No use of instrumentation, unless instrumentation_begin() got
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  784) 	    called.
83c2da2e605c7 (Frederic Weisbecker        2020-11-17 16:16:33 +0100  785) 
490f561b783da (Frederic Weisbecker        2020-01-27 16:41:52 +0100  786) config HAVE_TIF_NOHZ
490f561b783da (Frederic Weisbecker        2020-01-27 16:41:52 +0100  787) 	bool
490f561b783da (Frederic Weisbecker        2020-01-27 16:41:52 +0100  788) 	help
490f561b783da (Frederic Weisbecker        2020-01-27 16:41:52 +0100  789) 	  Arch relies on TIF_NOHZ and syscall slow path to implement context
490f561b783da (Frederic Weisbecker        2020-01-27 16:41:52 +0100  790) 	  tracking calls to user_enter()/user_exit().
2b1d5024e17be (Frederic Weisbecker        2012-07-11 20:26:30 +0200  791) 
b952741c80790 (Frederic Weisbecker        2012-06-16 15:39:34 +0200  792) config HAVE_VIRT_CPU_ACCOUNTING
b952741c80790 (Frederic Weisbecker        2012-06-16 15:39:34 +0200  793) 	bool
b952741c80790 (Frederic Weisbecker        2012-06-16 15:39:34 +0200  794) 
2b91ec9f551b5 (Frederic Weisbecker        2020-12-02 12:57:29 +0100  795) config HAVE_VIRT_CPU_ACCOUNTING_IDLE
2b91ec9f551b5 (Frederic Weisbecker        2020-12-02 12:57:29 +0100  796) 	bool
2b91ec9f551b5 (Frederic Weisbecker        2020-12-02 12:57:29 +0100  797) 	help
2b91ec9f551b5 (Frederic Weisbecker        2020-12-02 12:57:29 +0100  798) 	  Architecture has its own way to account idle CPU time and therefore
2b91ec9f551b5 (Frederic Weisbecker        2020-12-02 12:57:29 +0100  799) 	  doesn't implement vtime_account_idle().
2b91ec9f551b5 (Frederic Weisbecker        2020-12-02 12:57:29 +0100  800) 
40565b5aedd6d (Stanislaw Gruszka          2016-11-15 03:06:51 +0100  801) config ARCH_HAS_SCALED_CPUTIME
40565b5aedd6d (Stanislaw Gruszka          2016-11-15 03:06:51 +0100  802) 	bool
40565b5aedd6d (Stanislaw Gruszka          2016-11-15 03:06:51 +0100  803) 
554b0004d0ec4 (Kevin Hilman               2013-09-16 15:28:21 -0700  804) config HAVE_VIRT_CPU_ACCOUNTING_GEN
554b0004d0ec4 (Kevin Hilman               2013-09-16 15:28:21 -0700  805) 	bool
554b0004d0ec4 (Kevin Hilman               2013-09-16 15:28:21 -0700  806) 	default y if 64BIT
554b0004d0ec4 (Kevin Hilman               2013-09-16 15:28:21 -0700  807) 	help
554b0004d0ec4 (Kevin Hilman               2013-09-16 15:28:21 -0700  808) 	  With VIRT_CPU_ACCOUNTING_GEN, cputime_t becomes 64-bit.
554b0004d0ec4 (Kevin Hilman               2013-09-16 15:28:21 -0700  809) 	  Before enabling this option, arch code must be audited
554b0004d0ec4 (Kevin Hilman               2013-09-16 15:28:21 -0700  810) 	  to ensure there are no races in concurrent read/write of
554b0004d0ec4 (Kevin Hilman               2013-09-16 15:28:21 -0700  811) 	  cputime_t. For example, reading/writing 64-bit cputime_t on
554b0004d0ec4 (Kevin Hilman               2013-09-16 15:28:21 -0700  812) 	  some 32-bit arches may require multiple accesses, so proper
554b0004d0ec4 (Kevin Hilman               2013-09-16 15:28:21 -0700  813) 	  locking is needed to protect against concurrent accesses.
554b0004d0ec4 (Kevin Hilman               2013-09-16 15:28:21 -0700  814) 
fdf9c356502ae (Frederic Weisbecker        2012-09-09 14:56:31 +0200  815) config HAVE_IRQ_TIME_ACCOUNTING
fdf9c356502ae (Frederic Weisbecker        2012-09-09 14:56:31 +0200  816) 	bool
fdf9c356502ae (Frederic Weisbecker        2012-09-09 14:56:31 +0200  817) 	help
fdf9c356502ae (Frederic Weisbecker        2012-09-09 14:56:31 +0200  818) 	  Archs need to ensure they use a high enough resolution clock to
fdf9c356502ae (Frederic Weisbecker        2012-09-09 14:56:31 +0200  819) 	  support irq time accounting and then call enable_sched_clock_irqtime().
fdf9c356502ae (Frederic Weisbecker        2012-09-09 14:56:31 +0200  820) 
c49dd34018026 (Kalesh Singh               2020-12-14 19:07:30 -0800  821) config HAVE_MOVE_PUD
c49dd34018026 (Kalesh Singh               2020-12-14 19:07:30 -0800  822) 	bool
c49dd34018026 (Kalesh Singh               2020-12-14 19:07:30 -0800  823) 	help
c49dd34018026 (Kalesh Singh               2020-12-14 19:07:30 -0800  824) 	  Architectures that select this are able to move page tables at the
c49dd34018026 (Kalesh Singh               2020-12-14 19:07:30 -0800  825) 	  PUD level. If there are only 3 page table levels, the move effectively
c49dd34018026 (Kalesh Singh               2020-12-14 19:07:30 -0800  826) 	  happens at the PGD level.
c49dd34018026 (Kalesh Singh               2020-12-14 19:07:30 -0800  827) 
2c91bd4a4e2e5 (Joel Fernandes (Google)    2019-01-03 15:28:38 -0800  828) config HAVE_MOVE_PMD
2c91bd4a4e2e5 (Joel Fernandes (Google)    2019-01-03 15:28:38 -0800  829) 	bool
2c91bd4a4e2e5 (Joel Fernandes (Google)    2019-01-03 15:28:38 -0800  830) 	help
2c91bd4a4e2e5 (Joel Fernandes (Google)    2019-01-03 15:28:38 -0800  831) 	  Archs that select this are able to move page tables at the PMD level.
2c91bd4a4e2e5 (Joel Fernandes (Google)    2019-01-03 15:28:38 -0800  832) 
15626062f4a98 (Gerald Schaefer            2012-10-08 16:30:04 -0700  833) config HAVE_ARCH_TRANSPARENT_HUGEPAGE
15626062f4a98 (Gerald Schaefer            2012-10-08 16:30:04 -0700  834) 	bool
15626062f4a98 (Gerald Schaefer            2012-10-08 16:30:04 -0700  835) 
a00cc7d9dd93d (Matthew Wilcox             2017-02-24 14:57:02 -0800  836) config HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD
a00cc7d9dd93d (Matthew Wilcox             2017-02-24 14:57:02 -0800  837) 	bool
a00cc7d9dd93d (Matthew Wilcox             2017-02-24 14:57:02 -0800  838) 
0ddab1d2ed664 (Toshi Kani                 2015-04-14 15:47:20 -0700  839) config HAVE_ARCH_HUGE_VMAP
0ddab1d2ed664 (Toshi Kani                 2015-04-14 15:47:20 -0700  840) 	bool
0ddab1d2ed664 (Toshi Kani                 2015-04-14 15:47:20 -0700  841) 
121e6f3258fe3 (Nicholas Piggin            2021-04-29 22:58:49 -0700  842) #
121e6f3258fe3 (Nicholas Piggin            2021-04-29 22:58:49 -0700  843) #  Archs that select this would be capable of PMD-sized vmaps (i.e.,
121e6f3258fe3 (Nicholas Piggin            2021-04-29 22:58:49 -0700  844) #  arch_vmap_pmd_supported() returns true), and they must make no assumptions
121e6f3258fe3 (Nicholas Piggin            2021-04-29 22:58:49 -0700  845) #  that vmalloc memory is mapped with PAGE_SIZE ptes. The VM_NO_HUGE_VMAP flag
121e6f3258fe3 (Nicholas Piggin            2021-04-29 22:58:49 -0700  846) #  can be used to prohibit arch-specific allocations from using hugepages to
121e6f3258fe3 (Nicholas Piggin            2021-04-29 22:58:49 -0700  847) #  help with this (e.g., modules may require it).
121e6f3258fe3 (Nicholas Piggin            2021-04-29 22:58:49 -0700  848) #
121e6f3258fe3 (Nicholas Piggin            2021-04-29 22:58:49 -0700  849) config HAVE_ARCH_HUGE_VMALLOC
121e6f3258fe3 (Nicholas Piggin            2021-04-29 22:58:49 -0700  850) 	depends on HAVE_ARCH_HUGE_VMAP
121e6f3258fe3 (Nicholas Piggin            2021-04-29 22:58:49 -0700  851) 	bool
121e6f3258fe3 (Nicholas Piggin            2021-04-29 22:58:49 -0700  852) 
3876d4a38ae22 (Alexandre Ghiti            2019-06-27 15:00:11 -0700  853) config ARCH_WANT_HUGE_PMD_SHARE
3876d4a38ae22 (Alexandre Ghiti            2019-06-27 15:00:11 -0700  854) 	bool
3876d4a38ae22 (Alexandre Ghiti            2019-06-27 15:00:11 -0700  855) 
0f8975ec4db2c (Pavel Emelyanov            2013-07-03 15:01:20 -0700  856) config HAVE_ARCH_SOFT_DIRTY
0f8975ec4db2c (Pavel Emelyanov            2013-07-03 15:01:20 -0700  857) 	bool
0f8975ec4db2c (Pavel Emelyanov            2013-07-03 15:01:20 -0700  858) 
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  859) config HAVE_MOD_ARCH_SPECIFIC
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  860) 	bool
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  861) 	help
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  862) 	  The arch uses struct mod_arch_specific to store data.  Many arches
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  863) 	  just need a simple module loader without arch specific data - those
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  864) 	  should not enable this.
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  865) 
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  866) config MODULES_USE_ELF_RELA
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  867) 	bool
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  868) 	help
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  869) 	  Modules only use ELF RELA relocations.  Modules with ELF REL
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  870) 	  relocations will give an error.
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  871) 
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  872) config MODULES_USE_ELF_REL
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  873) 	bool
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  874) 	help
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  875) 	  Modules only use ELF REL relocations.  Modules with ELF RELA
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  876) 	  relocations will give an error.
786d35d45cc40 (David Howells              2012-09-28 14:31:03 +0930  877) 
cc1f027454929 (Frederic Weisbecker        2013-09-24 17:17:47 +0200  878) config HAVE_IRQ_EXIT_ON_IRQ_STACK
cc1f027454929 (Frederic Weisbecker        2013-09-24 17:17:47 +0200  879) 	bool
cc1f027454929 (Frederic Weisbecker        2013-09-24 17:17:47 +0200  880) 	help
cc1f027454929 (Frederic Weisbecker        2013-09-24 17:17:47 +0200  881) 	  Architecture doesn't only execute the irq handler on the irq stack
cc1f027454929 (Frederic Weisbecker        2013-09-24 17:17:47 +0200  882) 	  but also irq_exit(). This way we can process softirqs on this irq
cc1f027454929 (Frederic Weisbecker        2013-09-24 17:17:47 +0200  883) 	  stack instead of switching to a new one when we call __do_softirq()
cc1f027454929 (Frederic Weisbecker        2013-09-24 17:17:47 +0200  884) 	  in the end of an hardirq.
cc1f027454929 (Frederic Weisbecker        2013-09-24 17:17:47 +0200  885) 	  This spares a stack switch and improves cache usage on softirq
cc1f027454929 (Frederic Weisbecker        2013-09-24 17:17:47 +0200  886) 	  processing.
cc1f027454929 (Frederic Weisbecker        2013-09-24 17:17:47 +0200  887) 
cd1a41ceba8a4 (Thomas Gleixner            2021-02-10 00:40:52 +0100  888) config HAVE_SOFTIRQ_ON_OWN_STACK
cd1a41ceba8a4 (Thomas Gleixner            2021-02-10 00:40:52 +0100  889) 	bool
cd1a41ceba8a4 (Thomas Gleixner            2021-02-10 00:40:52 +0100  890) 	help
cd1a41ceba8a4 (Thomas Gleixner            2021-02-10 00:40:52 +0100  891) 	  Architecture provides a function to run __do_softirq() on a
c226bc3cd99bd (Colin Ian King             2021-09-07 19:57:38 -0700  892) 	  separate stack.
cd1a41ceba8a4 (Thomas Gleixner            2021-02-10 00:40:52 +0100  893) 
235a8f0286d3d (Kirill A. Shutemov         2015-04-14 15:46:17 -0700  894) config PGTABLE_LEVELS
235a8f0286d3d (Kirill A. Shutemov         2015-04-14 15:46:17 -0700  895) 	int
235a8f0286d3d (Kirill A. Shutemov         2015-04-14 15:46:17 -0700  896) 	default 2
235a8f0286d3d (Kirill A. Shutemov         2015-04-14 15:46:17 -0700  897) 
2b68f6caeac27 (Kees Cook                  2015-04-14 15:48:00 -0700  898) config ARCH_HAS_ELF_RANDOMIZE
2b68f6caeac27 (Kees Cook                  2015-04-14 15:48:00 -0700  899) 	bool
2b68f6caeac27 (Kees Cook                  2015-04-14 15:48:00 -0700  900) 	help
2b68f6caeac27 (Kees Cook                  2015-04-14 15:48:00 -0700  901) 	  An architecture supports choosing randomized locations for
2b68f6caeac27 (Kees Cook                  2015-04-14 15:48:00 -0700  902) 	  stack, mmap, brk, and ET_DYN. Defined functions:
2b68f6caeac27 (Kees Cook                  2015-04-14 15:48:00 -0700  903) 	  - arch_mmap_rnd()
204db6ed17743 (Kees Cook                  2015-04-14 15:48:12 -0700  904) 	  - arch_randomize_brk()
2b68f6caeac27 (Kees Cook                  2015-04-14 15:48:00 -0700  905) 
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  906) config HAVE_ARCH_MMAP_RND_BITS
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  907) 	bool
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  908) 	help
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  909) 	  An arch should select this symbol if it supports setting a variable
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  910) 	  number of bits for use in establishing the base address for mmap
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  911) 	  allocations, has MMU enabled and provides values for both:
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  912) 	  - ARCH_MMAP_RND_BITS_MIN
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  913) 	  - ARCH_MMAP_RND_BITS_MAX
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  914) 
5f56a5dfdb9bc (Jiri Slaby                 2016-05-20 17:00:16 -0700  915) config HAVE_EXIT_THREAD
5f56a5dfdb9bc (Jiri Slaby                 2016-05-20 17:00:16 -0700  916) 	bool
5f56a5dfdb9bc (Jiri Slaby                 2016-05-20 17:00:16 -0700  917) 	help
5f56a5dfdb9bc (Jiri Slaby                 2016-05-20 17:00:16 -0700  918) 	  An architecture implements exit_thread.
5f56a5dfdb9bc (Jiri Slaby                 2016-05-20 17:00:16 -0700  919) 
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  920) config ARCH_MMAP_RND_BITS_MIN
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  921) 	int
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  922) 
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  923) config ARCH_MMAP_RND_BITS_MAX
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  924) 	int
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  925) 
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  926) config ARCH_MMAP_RND_BITS_DEFAULT
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  927) 	int
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  928) 
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  929) config ARCH_MMAP_RND_BITS
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  930) 	int "Number of bits to use for ASLR of mmap base address" if EXPERT
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  931) 	range ARCH_MMAP_RND_BITS_MIN ARCH_MMAP_RND_BITS_MAX
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  932) 	default ARCH_MMAP_RND_BITS_DEFAULT if ARCH_MMAP_RND_BITS_DEFAULT
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  933) 	default ARCH_MMAP_RND_BITS_MIN
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  934) 	depends on HAVE_ARCH_MMAP_RND_BITS
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  935) 	help
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  936) 	  This value can be used to select the number of bits to use to
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  937) 	  determine the random offset to the base address of vma regions
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  938) 	  resulting from mmap allocations. This value will be bounded
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  939) 	  by the architecture's minimum and maximum supported values.
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  940) 
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  941) 	  This value can be changed after boot using the
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  942) 	  /proc/sys/vm/mmap_rnd_bits tunable
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  943) 
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  944) config HAVE_ARCH_MMAP_RND_COMPAT_BITS
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  945) 	bool
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  946) 	help
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  947) 	  An arch should select this symbol if it supports running applications
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  948) 	  in compatibility mode, supports setting a variable number of bits for
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  949) 	  use in establishing the base address for mmap allocations, has MMU
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  950) 	  enabled and provides values for both:
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  951) 	  - ARCH_MMAP_RND_COMPAT_BITS_MIN
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  952) 	  - ARCH_MMAP_RND_COMPAT_BITS_MAX
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  953) 
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  954) config ARCH_MMAP_RND_COMPAT_BITS_MIN
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  955) 	int
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  956) 
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  957) config ARCH_MMAP_RND_COMPAT_BITS_MAX
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  958) 	int
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  959) 
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  960) config ARCH_MMAP_RND_COMPAT_BITS_DEFAULT
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  961) 	int
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  962) 
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  963) config ARCH_MMAP_RND_COMPAT_BITS
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  964) 	int "Number of bits to use for ASLR of mmap base address for compatible applications" if EXPERT
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  965) 	range ARCH_MMAP_RND_COMPAT_BITS_MIN ARCH_MMAP_RND_COMPAT_BITS_MAX
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  966) 	default ARCH_MMAP_RND_COMPAT_BITS_DEFAULT if ARCH_MMAP_RND_COMPAT_BITS_DEFAULT
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  967) 	default ARCH_MMAP_RND_COMPAT_BITS_MIN
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  968) 	depends on HAVE_ARCH_MMAP_RND_COMPAT_BITS
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  969) 	help
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  970) 	  This value can be used to select the number of bits to use to
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  971) 	  determine the random offset to the base address of vma regions
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  972) 	  resulting from mmap allocations for compatible applications This
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  973) 	  value will be bounded by the architecture's minimum and maximum
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  974) 	  supported values.
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  975) 
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  976) 	  This value can be changed after boot using the
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  977) 	  /proc/sys/vm/mmap_rnd_compat_bits tunable
d07e22597d1d3 (Daniel Cashman             2016-01-14 15:19:53 -0800  978) 
1b028f784e8c3 (Dmitry Safonov             2017-03-06 17:17:19 +0300  979) config HAVE_ARCH_COMPAT_MMAP_BASES
1b028f784e8c3 (Dmitry Safonov             2017-03-06 17:17:19 +0300  980) 	bool
1b028f784e8c3 (Dmitry Safonov             2017-03-06 17:17:19 +0300  981) 	help
1b028f784e8c3 (Dmitry Safonov             2017-03-06 17:17:19 +0300  982) 	  This allows 64bit applications to invoke 32-bit mmap() syscall
1b028f784e8c3 (Dmitry Safonov             2017-03-06 17:17:19 +0300  983) 	  and vice-versa 32-bit applications to call 64-bit mmap().
1b028f784e8c3 (Dmitry Safonov             2017-03-06 17:17:19 +0300  984) 	  Required for applications doing different bitness syscalls.
1b028f784e8c3 (Dmitry Safonov             2017-03-06 17:17:19 +0300  985) 
67f3977f805b3 (Alexandre Ghiti            2019-09-23 15:38:47 -0700  986) # This allows to use a set of generic functions to determine mmap base
67f3977f805b3 (Alexandre Ghiti            2019-09-23 15:38:47 -0700  987) # address by giving priority to top-down scheme only if the process
67f3977f805b3 (Alexandre Ghiti            2019-09-23 15:38:47 -0700  988) # is not in legacy mode (compat task, unlimited stack size or
67f3977f805b3 (Alexandre Ghiti            2019-09-23 15:38:47 -0700  989) # sysctl_legacy_va_layout).
67f3977f805b3 (Alexandre Ghiti            2019-09-23 15:38:47 -0700  990) # Architecture that selects this option can provide its own version of:
67f3977f805b3 (Alexandre Ghiti            2019-09-23 15:38:47 -0700  991) # - STACK_RND_MASK
67f3977f805b3 (Alexandre Ghiti            2019-09-23 15:38:47 -0700  992) config ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT
67f3977f805b3 (Alexandre Ghiti            2019-09-23 15:38:47 -0700  993) 	bool
67f3977f805b3 (Alexandre Ghiti            2019-09-23 15:38:47 -0700  994) 	depends on MMU
e7142bf5d231f (Alexandre Ghiti            2019-09-23 15:38:50 -0700  995) 	select ARCH_HAS_ELF_RANDOMIZE
67f3977f805b3 (Alexandre Ghiti            2019-09-23 15:38:47 -0700  996) 
b9ab5ebb14ec3 (Josh Poimboeuf             2016-02-28 22:22:42 -0600  997) config HAVE_STACK_VALIDATION
b9ab5ebb14ec3 (Josh Poimboeuf             2016-02-28 22:22:42 -0600  998) 	bool
b9ab5ebb14ec3 (Josh Poimboeuf             2016-02-28 22:22:42 -0600  999) 	help
b9ab5ebb14ec3 (Josh Poimboeuf             2016-02-28 22:22:42 -0600 1000) 	  Architecture supports the 'objtool check' host tool command, which
b9ab5ebb14ec3 (Josh Poimboeuf             2016-02-28 22:22:42 -0600 1001) 	  performs compile-time stack metadata validation.
b9ab5ebb14ec3 (Josh Poimboeuf             2016-02-28 22:22:42 -0600 1002) 
af085d9084b48 (Josh Poimboeuf             2017-02-13 19:42:28 -0600 1003) config HAVE_RELIABLE_STACKTRACE
af085d9084b48 (Josh Poimboeuf             2017-02-13 19:42:28 -0600 1004) 	bool
af085d9084b48 (Josh Poimboeuf             2017-02-13 19:42:28 -0600 1005) 	help
140d7e88bb2ac (Miroslav Benes             2020-03-05 22:28:45 -0800 1006) 	  Architecture has either save_stack_trace_tsk_reliable() or
140d7e88bb2ac (Miroslav Benes             2020-03-05 22:28:45 -0800 1007) 	  arch_stack_walk_reliable() function which only returns a stack trace
140d7e88bb2ac (Miroslav Benes             2020-03-05 22:28:45 -0800 1008) 	  if it can guarantee the trace is reliable.
af085d9084b48 (Josh Poimboeuf             2017-02-13 19:42:28 -0600 1009) 
468a9428521e7 (George Spelvin             2016-05-26 22:11:51 -0400 1010) config HAVE_ARCH_HASH
468a9428521e7 (George Spelvin             2016-05-26 22:11:51 -0400 1011) 	bool
468a9428521e7 (George Spelvin             2016-05-26 22:11:51 -0400 1012) 	default n
468a9428521e7 (George Spelvin             2016-05-26 22:11:51 -0400 1013) 	help
468a9428521e7 (George Spelvin             2016-05-26 22:11:51 -0400 1014) 	  If this is set, the architecture provides an <asm/hash.h>
468a9428521e7 (George Spelvin             2016-05-26 22:11:51 -0400 1015) 	  file which provides platform-specific implementations of some
468a9428521e7 (George Spelvin             2016-05-26 22:11:51 -0400 1016) 	  functions in <linux/hash.h> or fs/namei.c.
468a9428521e7 (George Spelvin             2016-05-26 22:11:51 -0400 1017) 
666047fe2a4c9 (Finn Thain                 2019-01-15 15:18:56 +1100 1018) config HAVE_ARCH_NVRAM_OPS
666047fe2a4c9 (Finn Thain                 2019-01-15 15:18:56 +1100 1019) 	bool
666047fe2a4c9 (Finn Thain                 2019-01-15 15:18:56 +1100 1020) 
3a4955111ad46 (William Breathitt Gray     2016-05-27 18:08:27 -0400 1021) config ISA_BUS_API
3a4955111ad46 (William Breathitt Gray     2016-05-27 18:08:27 -0400 1022) 	def_bool ISA
3a4955111ad46 (William Breathitt Gray     2016-05-27 18:08:27 -0400 1023) 
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1024) #
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1025) # ABI hall of shame
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1026) #
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1027) config CLONE_BACKWARDS
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1028) 	bool
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1029) 	help
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1030) 	  Architecture has tls passed as the 4th argument of clone(2),
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1031) 	  not the 5th one.
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1032) 
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1033) config CLONE_BACKWARDS2
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1034) 	bool
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1035) 	help
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1036) 	  Architecture has the first two arguments of clone(2) swapped.
d2125043aebf7 (Al Viro                    2012-10-23 13:17:59 -0400 1037) 
dfa9771a7c478 (Michal Simek               2013-08-13 16:00:53 -0700 1038) config CLONE_BACKWARDS3
dfa9771a7c478 (Michal Simek               2013-08-13 16:00:53 -0700 1039) 	bool
dfa9771a7c478 (Michal Simek               2013-08-13 16:00:53 -0700 1040) 	help
dfa9771a7c478 (Michal Simek               2013-08-13 16:00:53 -0700 1041) 	  Architecture has tls passed as the 3rd argument of clone(2),
dfa9771a7c478 (Michal Simek               2013-08-13 16:00:53 -0700 1042) 	  not the 5th one.
dfa9771a7c478 (Michal Simek               2013-08-13 16:00:53 -0700 1043) 
eaca6eae3e0c4 (Al Viro                    2012-11-25 23:12:10 -0500 1044) config ODD_RT_SIGACTION
eaca6eae3e0c4 (Al Viro                    2012-11-25 23:12:10 -0500 1045) 	bool
eaca6eae3e0c4 (Al Viro                    2012-11-25 23:12:10 -0500 1046) 	help
eaca6eae3e0c4 (Al Viro                    2012-11-25 23:12:10 -0500 1047) 	  Architecture has unusual rt_sigaction(2) arguments
eaca6eae3e0c4 (Al Viro                    2012-11-25 23:12:10 -0500 1048) 
0a0e8cdf734ce (Al Viro                    2012-12-25 16:04:12 -0500 1049) config OLD_SIGSUSPEND
0a0e8cdf734ce (Al Viro                    2012-12-25 16:04:12 -0500 1050) 	bool
0a0e8cdf734ce (Al Viro                    2012-12-25 16:04:12 -0500 1051) 	help
0a0e8cdf734ce (Al Viro                    2012-12-25 16:04:12 -0500 1052) 	  Architecture has old sigsuspend(2) syscall, of one-argument variety
0a0e8cdf734ce (Al Viro                    2012-12-25 16:04:12 -0500 1053) 
0a0e8cdf734ce (Al Viro                    2012-12-25 16:04:12 -0500 1054) config OLD_SIGSUSPEND3
0a0e8cdf734ce (Al Viro                    2012-12-25 16:04:12 -0500 1055) 	bool
0a0e8cdf734ce (Al Viro                    2012-12-25 16:04:12 -0500 1056) 	help
0a0e8cdf734ce (Al Viro                    2012-12-25 16:04:12 -0500 1057) 	  Even weirder antique ABI - three-argument sigsuspend(2)
0a0e8cdf734ce (Al Viro                    2012-12-25 16:04:12 -0500 1058) 
495dfbf767553 (Al Viro                    2012-12-25 19:09:45 -0500 1059) config OLD_SIGACTION
495dfbf767553 (Al Viro                    2012-12-25 19:09:45 -0500 1060) 	bool
495dfbf767553 (Al Viro                    2012-12-25 19:09:45 -0500 1061) 	help
495dfbf767553 (Al Viro                    2012-12-25 19:09:45 -0500 1062) 	  Architecture has old sigaction(2) syscall.  Nope, not the same
495dfbf767553 (Al Viro                    2012-12-25 19:09:45 -0500 1063) 	  as OLD_SIGSUSPEND | OLD_SIGSUSPEND3 - alpha has sigsuspend(2),
495dfbf767553 (Al Viro                    2012-12-25 19:09:45 -0500 1064) 	  but fairly different variant of sigaction(2), thanks to OSF/1
495dfbf767553 (Al Viro                    2012-12-25 19:09:45 -0500 1065) 	  compatibility...
495dfbf767553 (Al Viro                    2012-12-25 19:09:45 -0500 1066) 
495dfbf767553 (Al Viro                    2012-12-25 19:09:45 -0500 1067) config COMPAT_OLD_SIGACTION
495dfbf767553 (Al Viro                    2012-12-25 19:09:45 -0500 1068) 	bool
495dfbf767553 (Al Viro                    2012-12-25 19:09:45 -0500 1069) 
17435e5f8cf3b (Deepa Dinamani             2018-03-13 21:03:28 -0700 1070) config COMPAT_32BIT_TIME
942437c97fd9f (Arnd Bergmann              2019-07-15 11:46:10 +0200 1071) 	bool "Provide system calls for 32-bit time_t"
942437c97fd9f (Arnd Bergmann              2019-07-15 11:46:10 +0200 1072) 	default !64BIT || COMPAT
17435e5f8cf3b (Deepa Dinamani             2018-03-13 21:03:28 -0700 1073) 	help
17435e5f8cf3b (Deepa Dinamani             2018-03-13 21:03:28 -0700 1074) 	  This enables 32 bit time_t support in addition to 64 bit time_t support.
17435e5f8cf3b (Deepa Dinamani             2018-03-13 21:03:28 -0700 1075) 	  This is relevant on all 32-bit architectures, and 64-bit architectures
17435e5f8cf3b (Deepa Dinamani             2018-03-13 21:03:28 -0700 1076) 	  as part of compat syscall handling.
17435e5f8cf3b (Deepa Dinamani             2018-03-13 21:03:28 -0700 1077) 
87a4c375995ed (Christoph Hellwig          2018-07-31 13:39:32 +0200 1078) config ARCH_NO_PREEMPT
87a4c375995ed (Christoph Hellwig          2018-07-31 13:39:32 +0200 1079) 	bool
87a4c375995ed (Christoph Hellwig          2018-07-31 13:39:32 +0200 1080) 
cb2c7d1a17760 (Mickaël Salaün             2021-04-22 17:41:17 +0200 1081) config ARCH_EPHEMERAL_INODES
cb2c7d1a17760 (Mickaël Salaün             2021-04-22 17:41:17 +0200 1082) 	def_bool n
cb2c7d1a17760 (Mickaël Salaün             2021-04-22 17:41:17 +0200 1083) 	help
cb2c7d1a17760 (Mickaël Salaün             2021-04-22 17:41:17 +0200 1084) 	  An arch should select this symbol if it doesn't keep track of inode
cb2c7d1a17760 (Mickaël Salaün             2021-04-22 17:41:17 +0200 1085) 	  instances on its own, but instead relies on something else (e.g. the
cb2c7d1a17760 (Mickaël Salaün             2021-04-22 17:41:17 +0200 1086) 	  host kernel for an UML kernel).
cb2c7d1a17760 (Mickaël Salaün             2021-04-22 17:41:17 +0200 1087) 
a50a3f4b6a313 (Thomas Gleixner            2019-07-17 22:01:49 +0200 1088) config ARCH_SUPPORTS_RT
a50a3f4b6a313 (Thomas Gleixner            2019-07-17 22:01:49 +0200 1089) 	bool
a50a3f4b6a313 (Thomas Gleixner            2019-07-17 22:01:49 +0200 1090) 
fff7fb0b2d908 (Zhaoxiu Zeng               2016-05-20 17:03:57 -0700 1091) config CPU_NO_EFFICIENT_FFS
fff7fb0b2d908 (Zhaoxiu Zeng               2016-05-20 17:03:57 -0700 1092) 	def_bool n
fff7fb0b2d908 (Zhaoxiu Zeng               2016-05-20 17:03:57 -0700 1093) 
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1094) config HAVE_ARCH_VMAP_STACK
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1095) 	def_bool n
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1096) 	help
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1097) 	  An arch should select this symbol if it can support kernel stacks
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1098) 	  in vmalloc space.  This means:
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1099) 
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1100) 	  - vmalloc space must be large enough to hold many kernel stacks.
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1101) 	    This may rule out many 32-bit architectures.
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1102) 
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1103) 	  - Stacks in vmalloc space need to work reliably.  For example, if
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1104) 	    vmap page tables are created on demand, either this mechanism
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1105) 	    needs to work while the stack points to a virtual address with
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1106) 	    unpopulated page tables or arch code (switch_to() and switch_mm(),
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1107) 	    most likely) needs to ensure that the stack's page table entries
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1108) 	    are populated before running on a possibly unpopulated stack.
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1109) 
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1110) 	  - If the stack overflows into a guard page, something reasonable
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1111) 	    should happen.  The definition of "reasonable" is flexible, but
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1112) 	    instantly rebooting without logging anything would be unfriendly.
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1113) 
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1114) config VMAP_STACK
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1115) 	default y
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1116) 	bool "Use a virtually-mapped stack"
eafb149ed73a8 (Daniel Axtens              2019-11-30 17:54:57 -0800 1117) 	depends on HAVE_ARCH_VMAP_STACK
38dd767daed1a (Andrey Konovalov           2020-12-22 12:02:45 -0800 1118) 	depends on !KASAN || KASAN_HW_TAGS || KASAN_VMALLOC
a7f7f6248d974 (Masahiro Yamada            2020-06-14 01:50:22 +0900 1119) 	help
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1120) 	  Enable this if you want the use virtually-mapped kernel stacks
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1121) 	  with guard pages.  This causes kernel stack overflows to be
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1122) 	  caught immediately rather than causing difficult-to-diagnose
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1123) 	  corruption.
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1124) 
38dd767daed1a (Andrey Konovalov           2020-12-22 12:02:45 -0800 1125) 	  To use this with software KASAN modes, the architecture must support
38dd767daed1a (Andrey Konovalov           2020-12-22 12:02:45 -0800 1126) 	  backing virtual mappings with real shadow memory, and KASAN_VMALLOC
38dd767daed1a (Andrey Konovalov           2020-12-22 12:02:45 -0800 1127) 	  must be enabled.
ba14a194a434c (Andy Lutomirski            2016-08-11 02:35:21 -0700 1128) 
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1129) config HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1130) 	def_bool n
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1131) 	help
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1132) 	  An arch should select this symbol if it can support kernel stack
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1133) 	  offset randomization with calls to add_random_kstack_offset()
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1134) 	  during syscall entry and choose_random_kstack_offset() during
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1135) 	  syscall exit. Careful removal of -fstack-protector-strong and
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1136) 	  -fstack-protector should also be applied to the entry code and
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1137) 	  closely examined, as the artificial stack bump looks like an array
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1138) 	  to the compiler, so it will attempt to add canary checks regardless
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1139) 	  of the static branch state.
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1140) 
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1141) config RANDOMIZE_KSTACK_OFFSET_DEFAULT
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1142) 	bool "Randomize kernel stack offset on syscall entry"
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1143) 	depends on HAVE_ARCH_RANDOMIZE_KSTACK_OFFSET
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1144) 	help
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1145) 	  The kernel stack offset can be randomized (after pt_regs) by
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1146) 	  roughly 5 bits of entropy, frustrating memory corruption
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1147) 	  attacks that depend on stack address determinism or
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1148) 	  cross-syscall address exposures. This feature is controlled
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1149) 	  by kernel boot param "randomize_kstack_offset=on/off", and this
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1150) 	  config chooses the default boot state.
39218ff4c625d (Kees Cook                  2021-04-01 16:23:44 -0700 1151) 
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1152) config ARCH_OPTIONAL_KERNEL_RWX
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1153) 	def_bool n
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1154) 
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1155) config ARCH_OPTIONAL_KERNEL_RWX_DEFAULT
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1156) 	def_bool n
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1157) 
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1158) config ARCH_HAS_STRICT_KERNEL_RWX
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1159) 	def_bool n
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1160) 
0f5bf6d0afe4b (Laura Abbott               2017-02-06 16:31:58 -0800 1161) config STRICT_KERNEL_RWX
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1162) 	bool "Make kernel text and rodata read-only" if ARCH_OPTIONAL_KERNEL_RWX
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1163) 	depends on ARCH_HAS_STRICT_KERNEL_RWX
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1164) 	default !ARCH_OPTIONAL_KERNEL_RWX || ARCH_OPTIONAL_KERNEL_RWX_DEFAULT
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1165) 	help
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1166) 	  If this is set, kernel text and rodata memory will be made read-only,
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1167) 	  and non-text memory will be made non-executable. This provides
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1168) 	  protection against certain security exploits (e.g. executing the heap
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1169) 	  or modifying text)
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1170) 
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1171) 	  These features are considered standard security practice these days.
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1172) 	  You should say Y here in almost all cases.
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1173) 
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1174) config ARCH_HAS_STRICT_MODULE_RWX
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1175) 	def_bool n
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1176) 
0f5bf6d0afe4b (Laura Abbott               2017-02-06 16:31:58 -0800 1177) config STRICT_MODULE_RWX
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1178) 	bool "Set loadable kernel module data as NX and text as RO" if ARCH_OPTIONAL_KERNEL_RWX
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1179) 	depends on ARCH_HAS_STRICT_MODULE_RWX && MODULES
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1180) 	default !ARCH_OPTIONAL_KERNEL_RWX || ARCH_OPTIONAL_KERNEL_RWX_DEFAULT
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1181) 	help
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1182) 	  If this is set, module text and rodata memory will be made read-only,
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1183) 	  and non-text memory will be made non-executable. This provides
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1184) 	  protection against certain security exploits (e.g. writing to text)
ad21fc4faa2a1 (Laura Abbott               2017-02-06 16:31:57 -0800 1185) 
ea8c64ace8664 (Christoph Hellwig          2018-01-10 16:21:13 +0100 1186) # select if the architecture provides an asm/dma-direct.h header
ea8c64ace8664 (Christoph Hellwig          2018-01-10 16:21:13 +0100 1187) config ARCH_HAS_PHYS_TO_DMA
ea8c64ace8664 (Christoph Hellwig          2018-01-10 16:21:13 +0100 1188) 	bool
ea8c64ace8664 (Christoph Hellwig          2018-01-10 16:21:13 +0100 1189) 
04f264d3a8b0e (Paul Burton                2018-08-20 15:36:17 -0700 1190) config HAVE_ARCH_COMPILER_H
04f264d3a8b0e (Paul Burton                2018-08-20 15:36:17 -0700 1191) 	bool
04f264d3a8b0e (Paul Burton                2018-08-20 15:36:17 -0700 1192) 	help
04f264d3a8b0e (Paul Burton                2018-08-20 15:36:17 -0700 1193) 	  An architecture can select this if it provides an
04f264d3a8b0e (Paul Burton                2018-08-20 15:36:17 -0700 1194) 	  asm/compiler.h header that should be included after
04f264d3a8b0e (Paul Burton                2018-08-20 15:36:17 -0700 1195) 	  linux/compiler-*.h in order to override macro definitions that those
04f264d3a8b0e (Paul Burton                2018-08-20 15:36:17 -0700 1196) 	  headers generally provide.
04f264d3a8b0e (Paul Burton                2018-08-20 15:36:17 -0700 1197) 
271ca788774aa (Ard Biesheuvel             2018-08-21 21:56:00 -0700 1198) config HAVE_ARCH_PREL32_RELOCATIONS
271ca788774aa (Ard Biesheuvel             2018-08-21 21:56:00 -0700 1199) 	bool
271ca788774aa (Ard Biesheuvel             2018-08-21 21:56:00 -0700 1200) 	help
271ca788774aa (Ard Biesheuvel             2018-08-21 21:56:00 -0700 1201) 	  May be selected by an architecture if it supports place-relative
271ca788774aa (Ard Biesheuvel             2018-08-21 21:56:00 -0700 1202) 	  32-bit relocations, both in the toolchain and in the module loader,
271ca788774aa (Ard Biesheuvel             2018-08-21 21:56:00 -0700 1203) 	  in which case relative references can be used in special sections
271ca788774aa (Ard Biesheuvel             2018-08-21 21:56:00 -0700 1204) 	  for PCI fixup, initcalls etc which are only half the size on 64 bit
271ca788774aa (Ard Biesheuvel             2018-08-21 21:56:00 -0700 1205) 	  architectures, and don't require runtime relocation on relocatable
271ca788774aa (Ard Biesheuvel             2018-08-21 21:56:00 -0700 1206) 	  kernels.
271ca788774aa (Ard Biesheuvel             2018-08-21 21:56:00 -0700 1207) 
ce9084ba0d1d8 (Ard Biesheuvel             2019-02-02 10:41:17 +0100 1208) config ARCH_USE_MEMREMAP_PROT
ce9084ba0d1d8 (Ard Biesheuvel             2019-02-02 10:41:17 +0100 1209) 	bool
ce9084ba0d1d8 (Ard Biesheuvel             2019-02-02 10:41:17 +0100 1210) 
fb346fd9fc081 (Waiman Long                2019-04-04 13:43:17 -0400 1211) config LOCK_EVENT_COUNTS
fb346fd9fc081 (Waiman Long                2019-04-04 13:43:17 -0400 1212) 	bool "Locking event counts collection"
fb346fd9fc081 (Waiman Long                2019-04-04 13:43:17 -0400 1213) 	depends on DEBUG_FS
a7f7f6248d974 (Masahiro Yamada            2020-06-14 01:50:22 +0900 1214) 	help
fb346fd9fc081 (Waiman Long                2019-04-04 13:43:17 -0400 1215) 	  Enable light-weight counting of various locking related events
fb346fd9fc081 (Waiman Long                2019-04-04 13:43:17 -0400 1216) 	  in the system with minimal performance impact. This reduces
fb346fd9fc081 (Waiman Long                2019-04-04 13:43:17 -0400 1217) 	  the chance of application behavior change because of timing
fb346fd9fc081 (Waiman Long                2019-04-04 13:43:17 -0400 1218) 	  differences. The counts are reported via debugfs.
fb346fd9fc081 (Waiman Long                2019-04-04 13:43:17 -0400 1219) 
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1220) # Select if the architecture has support for applying RELR relocations.
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1221) config ARCH_HAS_RELR
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1222) 	bool
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1223) 
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1224) config RELR
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1225) 	bool "Use RELR relocation packing"
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1226) 	depends on ARCH_HAS_RELR && TOOLS_SUPPORT_RELR
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1227) 	default y
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1228) 	help
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1229) 	  Store the kernel's dynamic relocations in the RELR relocation packing
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1230) 	  format. Requires a compatible linker (LLD supports this feature), as
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1231) 	  well as compatible NM and OBJCOPY utilities (llvm-nm and llvm-objcopy
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1232) 	  are compatible).
5cf896fb6be3e (Peter Collingbourne        2019-07-31 18:18:42 -0700 1233) 
0c9c1d5639751 (Thiago Jung Bauermann      2019-08-06 01:49:14 -0300 1234) config ARCH_HAS_MEM_ENCRYPT
0c9c1d5639751 (Thiago Jung Bauermann      2019-08-06 01:49:14 -0300 1235) 	bool
0c9c1d5639751 (Thiago Jung Bauermann      2019-08-06 01:49:14 -0300 1236) 
0e24220821b0e (Hassan Naveed              2019-11-15 23:44:42 +0000 1237) config HAVE_SPARSE_SYSCALL_NR
0e24220821b0e (Hassan Naveed              2019-11-15 23:44:42 +0000 1238)        bool
0e24220821b0e (Hassan Naveed              2019-11-15 23:44:42 +0000 1239)        help
0e24220821b0e (Hassan Naveed              2019-11-15 23:44:42 +0000 1240)           An architecture should select this if its syscall numbering is sparse
0e24220821b0e (Hassan Naveed              2019-11-15 23:44:42 +0000 1241) 	  to save space. For example, MIPS architecture has a syscall array with
0e24220821b0e (Hassan Naveed              2019-11-15 23:44:42 +0000 1242) 	  entries at 4000, 5000 and 6000 locations. This option turns on syscall
0e24220821b0e (Hassan Naveed              2019-11-15 23:44:42 +0000 1243) 	  related optimizations for a given architecture.
0e24220821b0e (Hassan Naveed              2019-11-15 23:44:42 +0000 1244) 
d60d7de3e16d7 (Sven Schnelle              2020-08-04 17:01:22 +0200 1245) config ARCH_HAS_VDSO_DATA
d60d7de3e16d7 (Sven Schnelle              2020-08-04 17:01:22 +0200 1246) 	bool
d60d7de3e16d7 (Sven Schnelle              2020-08-04 17:01:22 +0200 1247) 
115284d89a436 (Josh Poimboeuf             2020-08-18 15:57:41 +0200 1248) config HAVE_STATIC_CALL
115284d89a436 (Josh Poimboeuf             2020-08-18 15:57:41 +0200 1249) 	bool
115284d89a436 (Josh Poimboeuf             2020-08-18 15:57:41 +0200 1250) 
9183c3f9ed710 (Josh Poimboeuf             2020-08-18 15:57:42 +0200 1251) config HAVE_STATIC_CALL_INLINE
9183c3f9ed710 (Josh Poimboeuf             2020-08-18 15:57:42 +0200 1252) 	bool
9183c3f9ed710 (Josh Poimboeuf             2020-08-18 15:57:42 +0200 1253) 	depends on HAVE_STATIC_CALL
9183c3f9ed710 (Josh Poimboeuf             2020-08-18 15:57:42 +0200 1254) 
6ef869e064743 (Michal Hocko               2021-01-18 15:12:19 +0100 1255) config HAVE_PREEMPT_DYNAMIC
6ef869e064743 (Michal Hocko               2021-01-18 15:12:19 +0100 1256) 	bool
6ef869e064743 (Michal Hocko               2021-01-18 15:12:19 +0100 1257) 	depends on HAVE_STATIC_CALL
6ef869e064743 (Michal Hocko               2021-01-18 15:12:19 +0100 1258) 	depends on GENERIC_ENTRY
6ef869e064743 (Michal Hocko               2021-01-18 15:12:19 +0100 1259) 	help
6ef869e064743 (Michal Hocko               2021-01-18 15:12:19 +0100 1260) 	   Select this if the architecture support boot time preempt setting
6ef869e064743 (Michal Hocko               2021-01-18 15:12:19 +0100 1261) 	   on top of static calls. It is strongly advised to support inline
6ef869e064743 (Michal Hocko               2021-01-18 15:12:19 +0100 1262) 	   static call to avoid any overhead.
6ef869e064743 (Michal Hocko               2021-01-18 15:12:19 +0100 1263) 
59612b24f78a0 (Nathan Chancellor          2020-11-19 13:46:56 -0700 1264) config ARCH_WANT_LD_ORPHAN_WARN
59612b24f78a0 (Nathan Chancellor          2020-11-19 13:46:56 -0700 1265) 	bool
59612b24f78a0 (Nathan Chancellor          2020-11-19 13:46:56 -0700 1266) 	help
59612b24f78a0 (Nathan Chancellor          2020-11-19 13:46:56 -0700 1267) 	  An arch should select this symbol once all linker sections are explicitly
59612b24f78a0 (Nathan Chancellor          2020-11-19 13:46:56 -0700 1268) 	  included, size-asserted, or discarded in the linker scripts. This is
59612b24f78a0 (Nathan Chancellor          2020-11-19 13:46:56 -0700 1269) 	  important because we never want expected sections to be placed heuristically
59612b24f78a0 (Nathan Chancellor          2020-11-19 13:46:56 -0700 1270) 	  by the linker, since the locations of such sections can change between linker
59612b24f78a0 (Nathan Chancellor          2020-11-19 13:46:56 -0700 1271) 	  versions.
59612b24f78a0 (Nathan Chancellor          2020-11-19 13:46:56 -0700 1272) 
4f5b0c1789963 (Mike Rapoport              2020-12-14 19:09:59 -0800 1273) config HAVE_ARCH_PFN_VALID
4f5b0c1789963 (Mike Rapoport              2020-12-14 19:09:59 -0800 1274) 	bool
4f5b0c1789963 (Mike Rapoport              2020-12-14 19:09:59 -0800 1275) 
5d6ad668f3162 (Mike Rapoport              2020-12-14 19:10:30 -0800 1276) config ARCH_SUPPORTS_DEBUG_PAGEALLOC
5d6ad668f3162 (Mike Rapoport              2020-12-14 19:10:30 -0800 1277) 	bool
5d6ad668f3162 (Mike Rapoport              2020-12-14 19:10:30 -0800 1278) 
2ca408d9c749c (Brian Gerst                2020-11-30 17:30:59 -0500 1279) config ARCH_SPLIT_ARG64
2ca408d9c749c (Brian Gerst                2020-11-30 17:30:59 -0500 1280) 	bool
2ca408d9c749c (Brian Gerst                2020-11-30 17:30:59 -0500 1281) 	help
2ca408d9c749c (Brian Gerst                2020-11-30 17:30:59 -0500 1282) 	   If a 32-bit architecture requires 64-bit arguments to be split into
2ca408d9c749c (Brian Gerst                2020-11-30 17:30:59 -0500 1283) 	   pairs of 32-bit arguments, select this option.
2ca408d9c749c (Brian Gerst                2020-11-30 17:30:59 -0500 1284) 
7facdc426f86c (Al Viro                    2020-06-13 23:03:25 -0400 1285) config ARCH_HAS_ELFCORE_COMPAT
7facdc426f86c (Al Viro                    2020-06-13 23:03:25 -0400 1286) 	bool
7facdc426f86c (Al Viro                    2020-06-13 23:03:25 -0400 1287) 
58e106e725eed (Balbir Singh               2021-04-26 21:59:11 +0200 1288) config ARCH_HAS_PARANOID_L1D_FLUSH
58e106e725eed (Balbir Singh               2021-04-26 21:59:11 +0200 1289) 	bool
58e106e725eed (Balbir Singh               2021-04-26 21:59:11 +0200 1290) 
2521f2c228ad7 (Peter Oberparleiter        2009-06-17 16:28:08 -0700 1291) source "kernel/gcov/Kconfig"
45332b1bdfdc8 (Masahiro Yamada            2018-07-05 15:24:12 +0900 1292) 
45332b1bdfdc8 (Masahiro Yamada            2018-07-05 15:24:12 +0900 1293) source "scripts/gcc-plugins/Kconfig"
fa1b5d09d0771 (Linus Torvalds             2018-08-15 13:05:12 -0700 1294) 
22471e1313f2b (Randy Dunlap               2018-07-31 13:39:33 +0200 1295) endmenu