Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bdfa54df authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull s390 updates from Martin Schwidefsky:
 "The major change in this merge is the removal of the support for
  31-bit kernels.  Naturally 31-bit user space will continue to work via
  the compat layer.

  And then some cleanup, some improvements and bug fixes"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (23 commits)
  s390/smp: wait until secondaries are active & online
  s390/hibernate: fix save and restore of kernel text section
  s390/cacheinfo: add missing facility check
  s390/syscalls: simplify syscall_get_arch()
  s390/irq: enforce correct irqclass_sub_desc array size
  s390: remove "64" suffix from mem64.S and swsusp_asm64.S
  s390/ipl: cleanup macro usage
  s390/ipl: cleanup shutdown_action attributes
  s390/ipl: cleanup bin attr usage
  s390/uprobes: fix address space annotation
  s390: add missing arch_release_task_struct() declaration
  s390: make couple of functions and variables static
  s390/maccess: improve s390_kernel_write()
  s390/maccess: remove potentially broken probe_kernel_write()
  s390/watchdog: support for KVM hypervisors and delete pr_info messages
  s390/watchdog: enable KEEPALIVE for /dev/watchdog
  s390/dasd: remove setting of scheduler from driver
  s390/traps: panic() instead of die() on translation exception
  s390: remove test_facility(2) (== z/Architecture mode active) checks
  s390/cmpxchg: simplify cmpxchg_double
  ...
parents 2481bc75 a1307bba
Loading
Loading
Loading
Loading
+0 −1
Original line number Original line Diff line number Diff line
@@ -4,6 +4,5 @@ obj-$(CONFIG_KVM) += kvm/
obj-$(CONFIG_CRYPTO_HW)		+= crypto/
obj-$(CONFIG_CRYPTO_HW)		+= crypto/
obj-$(CONFIG_S390_HYPFS_FS)	+= hypfs/
obj-$(CONFIG_S390_HYPFS_FS)	+= hypfs/
obj-$(CONFIG_APPLDATA_BASE)	+= appldata/
obj-$(CONFIG_APPLDATA_BASE)	+= appldata/
obj-$(CONFIG_MATHEMU)		+= math-emu/
obj-y				+= net/
obj-y				+= net/
obj-$(CONFIG_PCI)		+= pci/
obj-$(CONFIG_PCI)		+= pci/
+21 −58
Original line number Original line Diff line number Diff line
@@ -35,7 +35,7 @@ config GENERIC_BUG_RELATIVE_POINTERS
	def_bool y
	def_bool y


config ARCH_DMA_ADDR_T_64BIT
config ARCH_DMA_ADDR_T_64BIT
	def_bool 64BIT
	def_bool y


config GENERIC_LOCKBREAK
config GENERIC_LOCKBREAK
	def_bool y if SMP && PREEMPT
	def_bool y if SMP && PREEMPT
@@ -59,7 +59,7 @@ config PCI_QUIRKS
	def_bool n
	def_bool n


config ARCH_SUPPORTS_UPROBES
config ARCH_SUPPORTS_UPROBES
	def_bool 64BIT
	def_bool y


config S390
config S390
	def_bool y
	def_bool y
@@ -111,19 +111,19 @@ config S390
	select GENERIC_TIME_VSYSCALL
	select GENERIC_TIME_VSYSCALL
	select HAVE_ALIGNED_STRUCT_PAGE if SLUB
	select HAVE_ALIGNED_STRUCT_PAGE if SLUB
	select HAVE_ARCH_AUDITSYSCALL
	select HAVE_ARCH_AUDITSYSCALL
	select HAVE_ARCH_JUMP_LABEL if !MARCH_G5
	select HAVE_ARCH_JUMP_LABEL
	select HAVE_ARCH_SECCOMP_FILTER
	select HAVE_ARCH_SECCOMP_FILTER
	select HAVE_ARCH_TRACEHOOK
	select HAVE_ARCH_TRACEHOOK
	select HAVE_ARCH_TRANSPARENT_HUGEPAGE if 64BIT
	select HAVE_ARCH_TRANSPARENT_HUGEPAGE
	select HAVE_BPF_JIT if 64BIT && PACK_STACK
	select HAVE_BPF_JIT if PACK_STACK
	select HAVE_CMPXCHG_DOUBLE
	select HAVE_CMPXCHG_DOUBLE
	select HAVE_CMPXCHG_LOCAL
	select HAVE_CMPXCHG_LOCAL
	select HAVE_DEBUG_KMEMLEAK
	select HAVE_DEBUG_KMEMLEAK
	select HAVE_DYNAMIC_FTRACE if 64BIT
	select HAVE_DYNAMIC_FTRACE
	select HAVE_DYNAMIC_FTRACE_WITH_REGS if 64BIT
	select HAVE_DYNAMIC_FTRACE_WITH_REGS
	select HAVE_FTRACE_MCOUNT_RECORD
	select HAVE_FTRACE_MCOUNT_RECORD
	select HAVE_FUNCTION_GRAPH_TRACER if 64BIT
	select HAVE_FUNCTION_GRAPH_TRACER
	select HAVE_FUNCTION_TRACER if 64BIT
	select HAVE_FUNCTION_TRACER
	select HAVE_FUTEX_CMPXCHG if FUTEX
	select HAVE_FUTEX_CMPXCHG if FUTEX
	select HAVE_KERNEL_BZIP2
	select HAVE_KERNEL_BZIP2
	select HAVE_KERNEL_GZIP
	select HAVE_KERNEL_GZIP
@@ -133,7 +133,7 @@ config S390
	select HAVE_KERNEL_XZ
	select HAVE_KERNEL_XZ
	select HAVE_KPROBES
	select HAVE_KPROBES
	select HAVE_KRETPROBES
	select HAVE_KRETPROBES
	select HAVE_KVM if 64BIT
	select HAVE_KVM
	select HAVE_LIVEPATCH
	select HAVE_LIVEPATCH
	select HAVE_MEMBLOCK
	select HAVE_MEMBLOCK
	select HAVE_MEMBLOCK_NODE_MAP
	select HAVE_MEMBLOCK_NODE_MAP
@@ -143,7 +143,6 @@ config S390
	select HAVE_PERF_EVENTS
	select HAVE_PERF_EVENTS
	select HAVE_REGS_AND_STACK_ACCESS_API
	select HAVE_REGS_AND_STACK_ACCESS_API
	select HAVE_SYSCALL_TRACEPOINTS
	select HAVE_SYSCALL_TRACEPOINTS
	select HAVE_UID16 if 32BIT
	select HAVE_VIRT_CPU_ACCOUNTING
	select HAVE_VIRT_CPU_ACCOUNTING
	select MODULES_USE_ELF_RELA
	select MODULES_USE_ELF_RELA
	select NO_BOOTMEM
	select NO_BOOTMEM
@@ -199,18 +198,11 @@ config HAVE_MARCH_Z13_FEATURES


choice
choice
	prompt "Processor type"
	prompt "Processor type"
	default MARCH_G5
	default MARCH_Z900

config MARCH_G5
	bool "System/390 model G5 and G6"
	depends on !64BIT
	help
	  Select this to build a 31 bit kernel that works
	  on all ESA/390 and z/Architecture machines.


config MARCH_Z900
config MARCH_Z900
	bool "IBM zSeries model z800 and z900"
	bool "IBM zSeries model z800 and z900"
	select HAVE_MARCH_Z900_FEATURES if 64BIT
	select HAVE_MARCH_Z900_FEATURES
	help
	help
	  Select this to enable optimizations for model z800/z900 (2064 and
	  Select this to enable optimizations for model z800/z900 (2064 and
	  2066 series). This will enable some optimizations that are not
	  2066 series). This will enable some optimizations that are not
@@ -218,7 +210,7 @@ config MARCH_Z900


config MARCH_Z990
config MARCH_Z990
	bool "IBM zSeries model z890 and z990"
	bool "IBM zSeries model z890 and z990"
	select HAVE_MARCH_Z990_FEATURES if 64BIT
	select HAVE_MARCH_Z990_FEATURES
	help
	help
	  Select this to enable optimizations for model z890/z990 (2084 and
	  Select this to enable optimizations for model z890/z990 (2084 and
	  2086 series). The kernel will be slightly faster but will not work
	  2086 series). The kernel will be slightly faster but will not work
@@ -226,7 +218,7 @@ config MARCH_Z990


config MARCH_Z9_109
config MARCH_Z9_109
	bool "IBM System z9"
	bool "IBM System z9"
	select HAVE_MARCH_Z9_109_FEATURES if 64BIT
	select HAVE_MARCH_Z9_109_FEATURES
	help
	help
	  Select this to enable optimizations for IBM System z9 (2094 and
	  Select this to enable optimizations for IBM System z9 (2094 and
	  2096 series). The kernel will be slightly faster but will not work
	  2096 series). The kernel will be slightly faster but will not work
@@ -234,7 +226,7 @@ config MARCH_Z9_109


config MARCH_Z10
config MARCH_Z10
	bool "IBM System z10"
	bool "IBM System z10"
	select HAVE_MARCH_Z10_FEATURES if 64BIT
	select HAVE_MARCH_Z10_FEATURES
	help
	help
	  Select this to enable optimizations for IBM System z10 (2097 and
	  Select this to enable optimizations for IBM System z10 (2097 and
	  2098 series). The kernel will be slightly faster but will not work
	  2098 series). The kernel will be slightly faster but will not work
@@ -242,7 +234,7 @@ config MARCH_Z10


config MARCH_Z196
config MARCH_Z196
	bool "IBM zEnterprise 114 and 196"
	bool "IBM zEnterprise 114 and 196"
	select HAVE_MARCH_Z196_FEATURES if 64BIT
	select HAVE_MARCH_Z196_FEATURES
	help
	help
	  Select this to enable optimizations for IBM zEnterprise 114 and 196
	  Select this to enable optimizations for IBM zEnterprise 114 and 196
	  (2818 and 2817 series). The kernel will be slightly faster but will
	  (2818 and 2817 series). The kernel will be slightly faster but will
@@ -250,7 +242,7 @@ config MARCH_Z196


config MARCH_ZEC12
config MARCH_ZEC12
	bool "IBM zBC12 and zEC12"
	bool "IBM zBC12 and zEC12"
	select HAVE_MARCH_ZEC12_FEATURES if 64BIT
	select HAVE_MARCH_ZEC12_FEATURES
	help
	help
	  Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
	  Select this to enable optimizations for IBM zBC12 and zEC12 (2828 and
	  2827 series). The kernel will be slightly faster but will not work on
	  2827 series). The kernel will be slightly faster but will not work on
@@ -258,7 +250,7 @@ config MARCH_ZEC12


config MARCH_Z13
config MARCH_Z13
	bool "IBM z13"
	bool "IBM z13"
	select HAVE_MARCH_Z13_FEATURES if 64BIT
	select HAVE_MARCH_Z13_FEATURES
	help
	help
	  Select this to enable optimizations for IBM z13 (2964 series).
	  Select this to enable optimizations for IBM z13 (2964 series).
	  The kernel will be slightly faster but will not work on older
	  The kernel will be slightly faster but will not work on older
@@ -266,9 +258,6 @@ config MARCH_Z13


endchoice
endchoice


config MARCH_G5_TUNE
	def_bool TUNE_G5 || MARCH_G5 && TUNE_DEFAULT

config MARCH_Z900_TUNE
config MARCH_Z900_TUNE
	def_bool TUNE_Z900 || MARCH_Z900 && TUNE_DEFAULT
	def_bool TUNE_Z900 || MARCH_Z900 && TUNE_DEFAULT


@@ -307,9 +296,6 @@ config TUNE_DEFAULT
	  Tune the generated code for the target processor for which the kernel
	  Tune the generated code for the target processor for which the kernel
	  will be compiled.
	  will be compiled.


config TUNE_G5
	bool "System/390 model G5 and G6"

config TUNE_Z900
config TUNE_Z900
	bool "IBM zSeries model z800 and z900"
	bool "IBM zSeries model z800 and z900"


@@ -335,18 +321,10 @@ endchoice


config 64BIT
config 64BIT
	def_bool y
	def_bool y
	prompt "64 bit kernel"
	help
	  Select this option if you have an IBM z/Architecture machine
	  and want to use the 64 bit addressing mode.

config 32BIT
	def_bool y if !64BIT


config COMPAT
config COMPAT
	def_bool y
	def_bool y
	prompt "Kernel support for 31 bit emulation"
	prompt "Kernel support for 31 bit emulation"
	depends on 64BIT
	select COMPAT_BINFMT_ELF if BINFMT_ELF
	select COMPAT_BINFMT_ELF if BINFMT_ELF
	select ARCH_WANT_OLD_COMPAT_IPC
	select ARCH_WANT_OLD_COMPAT_IPC
	select COMPAT_OLD_SIGACTION
	select COMPAT_OLD_SIGACTION
@@ -385,8 +363,7 @@ config NR_CPUS
	int "Maximum number of CPUs (2-512)"
	int "Maximum number of CPUs (2-512)"
	range 2 512
	range 2 512
	depends on SMP
	depends on SMP
	default "32" if !64BIT
	default "64"
	default "64" if 64BIT
	help
	help
	  This allows you to specify the maximum number of CPUs which this
	  This allows you to specify the maximum number of CPUs which this
	  kernel will support. The maximum supported value is 512 and the
	  kernel will support. The maximum supported value is 512 and the
@@ -427,15 +404,6 @@ config SCHED_TOPOLOGY


source kernel/Kconfig.preempt
source kernel/Kconfig.preempt


config MATHEMU
	def_bool y
	prompt "IEEE FPU emulation"
	depends on MARCH_G5
	help
	  This option is required for IEEE compliant floating point arithmetic
	  on older ESA/390 machines. Say Y unless you know your machine doesn't
	  need this.

source kernel/Kconfig.hz
source kernel/Kconfig.hz


endmenu
endmenu
@@ -446,7 +414,6 @@ config ARCH_SPARSEMEM_ENABLE
	def_bool y
	def_bool y
	select SPARSEMEM_VMEMMAP_ENABLE
	select SPARSEMEM_VMEMMAP_ENABLE
	select SPARSEMEM_VMEMMAP
	select SPARSEMEM_VMEMMAP
	select SPARSEMEM_STATIC if !64BIT


config ARCH_SPARSEMEM_DEFAULT
config ARCH_SPARSEMEM_DEFAULT
	def_bool y
	def_bool y
@@ -462,7 +429,6 @@ config ARCH_ENABLE_MEMORY_HOTREMOVE


config ARCH_ENABLE_SPLIT_PMD_PTLOCK
config ARCH_ENABLE_SPLIT_PMD_PTLOCK
	def_bool y
	def_bool y
	depends on 64BIT


config FORCE_MAX_ZONEORDER
config FORCE_MAX_ZONEORDER
	int
	int
@@ -537,7 +503,6 @@ config QDIO


menuconfig PCI
menuconfig PCI
	bool "PCI support"
	bool "PCI support"
	depends on 64BIT
	select HAVE_DMA_ATTRS
	select HAVE_DMA_ATTRS
	select PCI_MSI
	select PCI_MSI
	help
	help
@@ -607,7 +572,6 @@ config CHSC_SCH


config SCM_BUS
config SCM_BUS
	def_bool y
	def_bool y
	depends on 64BIT
	prompt "SCM bus driver"
	prompt "SCM bus driver"
	help
	help
	  Bus driver for Storage Class Memory.
	  Bus driver for Storage Class Memory.
@@ -629,7 +593,7 @@ menu "Dump support"


config CRASH_DUMP
config CRASH_DUMP
	bool "kernel crash dumps"
	bool "kernel crash dumps"
	depends on 64BIT && SMP
	depends on SMP
	select KEXEC
	select KEXEC
	help
	help
	  Generate crash dump after being started by kexec.
	  Generate crash dump after being started by kexec.
@@ -668,7 +632,7 @@ endmenu
menu "Power Management"
menu "Power Management"


config ARCH_HIBERNATION_POSSIBLE
config ARCH_HIBERNATION_POSSIBLE
	def_bool y if 64BIT
	def_bool y


source "kernel/power/Kconfig"
source "kernel/power/Kconfig"


@@ -819,7 +783,6 @@ source "arch/s390/kvm/Kconfig"
config S390_GUEST
config S390_GUEST
	def_bool y
	def_bool y
	prompt "s390 support for virtio devices"
	prompt "s390 support for virtio devices"
	depends on 64BIT
	select TTY
	select TTY
	select VIRTUALIZATION
	select VIRTUALIZATION
	select VIRTIO
	select VIRTIO
+1 −15
Original line number Original line Diff line number Diff line
@@ -13,15 +13,6 @@
# Copyright (C) 1994 by Linus Torvalds
# Copyright (C) 1994 by Linus Torvalds
#
#


ifndef CONFIG_64BIT
LD_BFD		:= elf32-s390
LDFLAGS		:= -m elf_s390
KBUILD_CFLAGS	+= -m31
KBUILD_AFLAGS	+= -m31
UTS_MACHINE	:= s390
STACK_SIZE	:= 8192
CHECKFLAGS	+= -D__s390__ -msize-long
else
LD_BFD		:= elf64-s390
LD_BFD		:= elf64-s390
LDFLAGS		:= -m elf64_s390
LDFLAGS		:= -m elf64_s390
KBUILD_AFLAGS_MODULE += -fPIC
KBUILD_AFLAGS_MODULE += -fPIC
@@ -31,11 +22,9 @@ KBUILD_AFLAGS += -m64
UTS_MACHINE	:= s390x
UTS_MACHINE	:= s390x
STACK_SIZE	:= 16384
STACK_SIZE	:= 16384
CHECKFLAGS	+= -D__s390__ -D__s390x__
CHECKFLAGS	+= -D__s390__ -D__s390x__
endif


export LD_BFD
export LD_BFD


mflags-$(CONFIG_MARCH_G5)     := -march=g5
mflags-$(CONFIG_MARCH_Z900)   := -march=z900
mflags-$(CONFIG_MARCH_Z900)   := -march=z900
mflags-$(CONFIG_MARCH_Z990)   := -march=z990
mflags-$(CONFIG_MARCH_Z990)   := -march=z990
mflags-$(CONFIG_MARCH_Z9_109) := -march=z9-109
mflags-$(CONFIG_MARCH_Z9_109) := -march=z9-109
@@ -47,7 +36,6 @@ mflags-$(CONFIG_MARCH_Z13) := -march=z13
aflags-y += $(mflags-y)
aflags-y += $(mflags-y)
cflags-y += $(mflags-y)
cflags-y += $(mflags-y)


cflags-$(CONFIG_MARCH_G5_TUNE)		+= -mtune=g5
cflags-$(CONFIG_MARCH_Z900_TUNE)	+= -mtune=z900
cflags-$(CONFIG_MARCH_Z900_TUNE)	+= -mtune=z900
cflags-$(CONFIG_MARCH_Z990_TUNE)	+= -mtune=z990
cflags-$(CONFIG_MARCH_Z990_TUNE)	+= -mtune=z990
cflags-$(CONFIG_MARCH_Z9_109_TUNE)	+= -mtune=z9-109
cflags-$(CONFIG_MARCH_Z9_109_TUNE)	+= -mtune=z9-109
@@ -104,7 +92,7 @@ KBUILD_AFLAGS += $(aflags-y)
OBJCOPYFLAGS	:= -O binary
OBJCOPYFLAGS	:= -O binary


head-y		:= arch/s390/kernel/head.o
head-y		:= arch/s390/kernel/head.o
head-y		+= arch/s390/kernel/$(if $(CONFIG_64BIT),head64.o,head31.o)
head-y		+= arch/s390/kernel/head64.o


# See arch/s390/Kbuild for content of core part of the kernel
# See arch/s390/Kbuild for content of core part of the kernel
core-y		+= arch/s390/
core-y		+= arch/s390/
@@ -129,9 +117,7 @@ zfcpdump:
	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@


vdso_install:
vdso_install:
ifeq ($(CONFIG_64BIT),y)
	$(Q)$(MAKE) $(build)=arch/$(ARCH)/kernel/vdso64 $@
	$(Q)$(MAKE) $(build)=arch/$(ARCH)/kernel/vdso64 $@
endif
	$(Q)$(MAKE) $(build)=arch/$(ARCH)/kernel/vdso32 $@
	$(Q)$(MAKE) $(build)=arch/$(ARCH)/kernel/vdso32 $@


archclean:
archclean:
+5 −7
Original line number Original line Diff line number Diff line
@@ -4,13 +4,11 @@
# create a compressed vmlinux image from the original vmlinux
# create a compressed vmlinux image from the original vmlinux
#
#


BITS := $(if $(CONFIG_64BIT),64,31)

targets	:= vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2
targets	:= vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2
targets += vmlinux.bin.xz vmlinux.bin.lzma vmlinux.bin.lzo vmlinux.bin.lz4
targets += vmlinux.bin.xz vmlinux.bin.lzma vmlinux.bin.lzo vmlinux.bin.lz4
targets += misc.o piggy.o sizes.h head$(BITS).o
targets += misc.o piggy.o sizes.h head.o


KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
KBUILD_CFLAGS := -m64 -D__KERNEL__ $(LINUX_INCLUDE) -O2
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
KBUILD_CFLAGS += $(cflags-y) -fno-delete-null-pointer-checks
KBUILD_CFLAGS += $(cflags-y) -fno-delete-null-pointer-checks
KBUILD_CFLAGS += $(call cc-option,-mpacked-stack)
KBUILD_CFLAGS += $(call cc-option,-mpacked-stack)
@@ -19,7 +17,7 @@ KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
GCOV_PROFILE := n
GCOV_PROFILE := n


OBJECTS := $(addprefix $(objtree)/arch/s390/kernel/, head.o sclp.o ebcdic.o)
OBJECTS := $(addprefix $(objtree)/arch/s390/kernel/, head.o sclp.o ebcdic.o)
OBJECTS += $(obj)/head$(BITS).o $(obj)/misc.o $(obj)/piggy.o
OBJECTS += $(obj)/head.o $(obj)/misc.o $(obj)/piggy.o


LDFLAGS_vmlinux := --oformat $(LD_BFD) -e startup -T
LDFLAGS_vmlinux := --oformat $(LD_BFD) -e startup -T
$(obj)/vmlinux: $(obj)/vmlinux.lds $(OBJECTS)
$(obj)/vmlinux: $(obj)/vmlinux.lds $(OBJECTS)
@@ -34,8 +32,8 @@ quiet_cmd_sizes = GEN $@
$(obj)/sizes.h: vmlinux
$(obj)/sizes.h: vmlinux
	$(call if_changed,sizes)
	$(call if_changed,sizes)


AFLAGS_head$(BITS).o += -I$(obj)
AFLAGS_head.o += -I$(obj)
$(obj)/head$(BITS).o: $(obj)/sizes.h
$(obj)/head.o: $(obj)/sizes.h


CFLAGS_misc.o += -I$(obj)
CFLAGS_misc.o += -I$(obj)
$(obj)/misc.o: $(obj)/sizes.h
$(obj)/misc.o: $(obj)/sizes.h
Loading