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 Diff line number Diff line
@@ -4,6 +4,5 @@ obj-$(CONFIG_KVM) += kvm/
obj-$(CONFIG_CRYPTO_HW)		+= crypto/
obj-$(CONFIG_S390_HYPFS_FS)	+= hypfs/
obj-$(CONFIG_APPLDATA_BASE)	+= appldata/
obj-$(CONFIG_MATHEMU)		+= math-emu/
obj-y				+= net/
obj-$(CONFIG_PCI)		+= pci/
+21 −58
Original line number Diff line number Diff line
@@ -35,7 +35,7 @@ config GENERIC_BUG_RELATIVE_POINTERS
	def_bool y

config ARCH_DMA_ADDR_T_64BIT
	def_bool 64BIT
	def_bool y

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

config ARCH_SUPPORTS_UPROBES
	def_bool 64BIT
	def_bool y

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

choice
	prompt "Processor type"
	default MARCH_G5

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.
	default MARCH_Z900

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

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

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

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

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

config MARCH_ZEC12
	bool "IBM zBC12 and zEC12"
	select HAVE_MARCH_ZEC12_FEATURES if 64BIT
	select HAVE_MARCH_ZEC12_FEATURES
	help
	  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
@@ -258,7 +250,7 @@ config MARCH_ZEC12

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

endchoice

config MARCH_G5_TUNE
	def_bool TUNE_G5 || MARCH_G5 && TUNE_DEFAULT

config MARCH_Z900_TUNE
	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
	  will be compiled.

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

config TUNE_Z900
	bool "IBM zSeries model z800 and z900"

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

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

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

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

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

config ARCH_ENABLE_SPLIT_PMD_PTLOCK
	def_bool y
	depends on 64BIT

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

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

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

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

config ARCH_HIBERNATION_POSSIBLE
	def_bool y if 64BIT
	def_bool y

source "kernel/power/Kconfig"

@@ -819,7 +783,6 @@ source "arch/s390/kvm/Kconfig"
config S390_GUEST
	def_bool y
	prompt "s390 support for virtio devices"
	depends on 64BIT
	select TTY
	select VIRTUALIZATION
	select VIRTIO
+1 −15
Original line number Diff line number Diff line
@@ -13,15 +13,6 @@
# 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
LDFLAGS		:= -m elf64_s390
KBUILD_AFLAGS_MODULE += -fPIC
@@ -31,11 +22,9 @@ KBUILD_AFLAGS += -m64
UTS_MACHINE	:= s390x
STACK_SIZE	:= 16384
CHECKFLAGS	+= -D__s390__ -D__s390x__
endif

export LD_BFD

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

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

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
core-y		+= arch/s390/
@@ -129,9 +117,7 @@ zfcpdump:
	$(Q)$(MAKE) $(build)=$(boot) $(boot)/$@

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

archclean:
+5 −7
Original line number Diff line number Diff line
@@ -4,13 +4,11 @@
# 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.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 += $(cflags-y) -fno-delete-null-pointer-checks
KBUILD_CFLAGS += $(call cc-option,-mpacked-stack)
@@ -19,7 +17,7 @@ KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
GCOV_PROFILE := n

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
$(obj)/vmlinux: $(obj)/vmlinux.lds $(OBJECTS)
@@ -34,8 +32,8 @@ quiet_cmd_sizes = GEN $@
$(obj)/sizes.h: vmlinux
	$(call if_changed,sizes)

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

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