Merge tag 's390-5.18-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
[linux-2.6-microblaze.git] / arch / s390 / Kconfig
index 2e11ef9..9b80e8b 100644 (file)
@@ -122,7 +122,6 @@ config S390
        select ARCH_WANT_IPC_PARSE_VERSION
        select BUILDTIME_TABLE_SORT
        select CLONE_BACKWARDS2
-       select CPU_NO_EFFICIENT_FFS if !HAVE_MARCH_Z9_109_FEATURES
        select DMA_OPS if PCI
        select DYNAMIC_FTRACE if FUNCTION_TRACER
        select GENERIC_ALLOCATOR
@@ -157,7 +156,7 @@ config S390
        select HAVE_DYNAMIC_FTRACE_WITH_ARGS
        select HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
        select HAVE_DYNAMIC_FTRACE_WITH_REGS
-       select HAVE_EBPF_JIT if PACK_STACK && HAVE_MARCH_Z196_FEATURES
+       select HAVE_EBPF_JIT if HAVE_MARCH_Z196_FEATURES
        select HAVE_EFFICIENT_UNALIGNED_ACCESS
        select HAVE_FAST_GUP
        select HAVE_FENTRY
@@ -232,20 +231,8 @@ source "kernel/livepatch/Kconfig"
 
 menu "Processor type and features"
 
-config HAVE_MARCH_Z900_FEATURES
-       def_bool n
-
-config HAVE_MARCH_Z990_FEATURES
-       def_bool n
-       select HAVE_MARCH_Z900_FEATURES
-
-config HAVE_MARCH_Z9_109_FEATURES
-       def_bool n
-       select HAVE_MARCH_Z990_FEATURES
-
 config HAVE_MARCH_Z10_FEATURES
        def_bool n
-       select HAVE_MARCH_Z9_109_FEATURES
 
 config HAVE_MARCH_Z196_FEATURES
        def_bool n
@@ -271,41 +258,13 @@ choice
        prompt "Processor type"
        default MARCH_Z196
 
-config MARCH_Z900
-       bool "IBM zSeries model z800 and z900"
-       select HAVE_MARCH_Z900_FEATURES
-       depends on $(cc-option,-march=z900)
-       help
-         Select this to enable optimizations for model z800/z900 (2064 and
-         2066 series). This will enable some optimizations that are not
-         available on older ESA/390 (31 Bit) only CPUs.
-
-config MARCH_Z990
-       bool "IBM zSeries model z890 and z990"
-       select HAVE_MARCH_Z990_FEATURES
-       depends on $(cc-option,-march=z990)
-       help
-         Select this to enable optimizations for model z890/z990 (2084 and
-         2086 series). The kernel will be slightly faster but will not work
-         on older machines.
-
-config MARCH_Z9_109
-       bool "IBM System z9"
-       select HAVE_MARCH_Z9_109_FEATURES
-       depends on $(cc-option,-march=z9-109)
-       help
-         Select this to enable optimizations for IBM System z9 (2094 and
-         2096 series). The kernel will be slightly faster but will not work
-         on older machines.
-
 config MARCH_Z10
        bool "IBM System z10"
        select HAVE_MARCH_Z10_FEATURES
        depends on $(cc-option,-march=z10)
        help
-         Select this to enable optimizations for IBM System z10 (2097 and
-         2098 series). The kernel will be slightly faster but will not work
-         on older machines.
+         Select this to enable optimizations for IBM System z10 (2097 and 2098
+         series). This is the oldest machine generation currently supported.
 
 config MARCH_Z196
        bool "IBM zEnterprise 114 and 196"
@@ -354,15 +313,6 @@ config MARCH_Z15
 
 endchoice
 
-config MARCH_Z900_TUNE
-       def_bool TUNE_Z900 || MARCH_Z900 && TUNE_DEFAULT
-
-config MARCH_Z990_TUNE
-       def_bool TUNE_Z990 || MARCH_Z990 && TUNE_DEFAULT
-
-config MARCH_Z9_109_TUNE
-       def_bool TUNE_Z9_109 || MARCH_Z9_109 && TUNE_DEFAULT
-
 config MARCH_Z10_TUNE
        def_bool TUNE_Z10 || MARCH_Z10 && TUNE_DEFAULT
 
@@ -398,21 +348,8 @@ config TUNE_DEFAULT
          Tune the generated code for the target processor for which the kernel
          will be compiled.
 
-config TUNE_Z900
-       bool "IBM zSeries model z800 and z900"
-       depends on $(cc-option,-mtune=z900)
-
-config TUNE_Z990
-       bool "IBM zSeries model z890 and z990"
-       depends on $(cc-option,-mtune=z990)
-
-config TUNE_Z9_109
-       bool "IBM System z9"
-       depends on $(cc-option,-mtune=z9-109)
-
 config TUNE_Z10
        bool "IBM System z10"
-       depends on $(cc-option,-mtune=z10)
 
 config TUNE_Z196
        bool "IBM zEnterprise 114 and 196"
@@ -587,6 +524,7 @@ config KERNEL_NOBP
 
 config EXPOLINE
        def_bool n
+       depends on $(cc-option,-mindirect-branch=thunk)
        prompt "Avoid speculative indirect branches in the kernel"
        help
          Compile the kernel with the expoline compiler options to guard
@@ -597,6 +535,19 @@ config EXPOLINE
 
          If unsure, say N.
 
+config EXPOLINE_EXTERN
+       def_bool n
+       depends on EXPOLINE
+       depends on CC_IS_GCC && GCC_VERSION >= 110200
+       depends on $(success,$(srctree)/arch/s390/tools/gcc-thunk-extern.sh $(CC))
+       prompt "Generate expolines as extern functions."
+       help
+         This option is required for some tooling like kpatch. The kernel is
+         compiled with -mindirect-branch=thunk-extern and requires a newer
+         compiler.
+
+         If unsure, say N.
+
 choice
        prompt "Expoline default"
        depends on EXPOLINE
@@ -658,20 +609,6 @@ config MAX_PHYSMEM_BITS
          Increasing the number of bits also increases the kernel image size.
          By default 46 bits (64TB) are supported.
 
-config PACK_STACK
-       def_bool y
-       prompt "Pack kernel stack"
-       help
-         This option enables the compiler option -mkernel-backchain if it
-         is available. If the option is available the compiler supports
-         the new stack layout which dramatically reduces the minimum stack
-         frame size. With an old compiler a non-leaf function needs a
-         minimum of 96 bytes on 31 bit and 160 bytes on 64 bit. With
-         -mkernel-backchain the minimum size drops to 16 byte on 31 bit
-         and 24 byte on 64 bit.
-
-         Say Y if you are unsure.
-
 config CHECK_STACK
        def_bool y
        depends on !VMAP_STACK