Skip to content

Commit c48953d

Browse files
committed
Merge tag 's390-7.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 updates from Heiko Carstens: - Drop support for outdated 3590/3592 and 3480 tape devices, and limit support to virtualized 3490E types devices - Implement exception based WARN() and WARN_ONCE() similar to x86 - Slightly optimize preempt primitives like __preempt_count_add() and __preempt_count_dec_and_test() - A couple of small fixes and improvements * tag 's390-7.0-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (35 commits) s390/tape: Consolidate tape config options and modules s390/cio: Fix device lifecycle handling in css_alloc_subchannel() s390/tape: Rename tape_34xx.c to tape_3490.c s390/tape: Cleanup sense data analysis and error handling s390/tape: Remove 3480 tape device type s390/tape: Remove unused command definitions s390/tape: Remove special block id handling s390/tape: Remove tape load display support s390/tape: Remove support for 3590/3592 models s390/kexec: Emit an error message when cmdline is too long s390/configs: Enable BLK_DEV_NULL_BLK as module s390: Document s390 stackprotector support s390/perf: Disable register readout on sampling events s390/Kconfig: Define non-zero ILLEGAL_POINTER_VALUE s390/bug: Prevent tail-call optimization s390/bug: Skip __WARN_trap() in call traces s390/bug: Implement WARN_ONCE() s390/bug: Implement __WARN_printf() s390/traps: Copy monitor code to pt_regs s390/bug: Introduce and use monitor code macro ...
2 parents 861ea34 + 5ae7683 commit c48953d

37 files changed

Lines changed: 1156 additions & 3308 deletions

Documentation/arch/s390/mm.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,7 @@ Virtual memory layout
109109
| KASAN shadow | KASAN untracked
110110
| |
111111
+------------------+ ASCE limit
112+
| |
113+
| CONFIG_ILLEGAL_POINTER_VALUE causes memory access fault
114+
| |
115+
+------------------+

Documentation/features/debug/stackprotector/arch-support.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
| parisc: | TODO |
2222
| powerpc: | ok |
2323
| riscv: | ok |
24-
| s390: | TODO |
24+
| s390: | ok |
2525
| sh: | ok |
2626
| sparc: | TODO |
2727
| um: | TODO |

arch/s390/Kconfig

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,12 @@ config CC_HAS_ASM_AOR_FORMAT_FLAGS
6969
Clang versions before 19.1.0 do not support A,
7070
O, and R inline assembly format flags.
7171

72+
config CC_HAS_ASM_IMMEDIATE_STRINGS
73+
def_bool !(CC_IS_GCC && GCC_VERSION < 90000)
74+
help
75+
GCC versions before 9.0.0 cannot handle strings as immediate
76+
input operands in inline assemblies.
77+
7278
config CC_HAS_STACKPROTECTOR_GLOBAL
7379
def_bool $(cc-option, -mstack-protector-guard=global -mstack-protector-guard-record)
7480

@@ -85,6 +91,7 @@ config S390
8591
select ARCH_ENABLE_MEMORY_HOTREMOVE
8692
select ARCH_ENABLE_SPLIT_PMD_PTLOCK if PGTABLE_LEVELS > 2
8793
select ARCH_ENABLE_THP_MIGRATION if TRANSPARENT_HUGEPAGE
94+
select ARCH_HAS_CC_CAN_LINK
8895
select ARCH_HAS_CPU_FINALIZE_INIT
8996
select ARCH_HAS_CURRENT_STACK_POINTER
9097
select ARCH_HAS_DEBUG_VIRTUAL
@@ -294,6 +301,14 @@ config PGTABLE_LEVELS
294301

295302
source "kernel/livepatch/Kconfig"
296303

304+
config ARCH_CC_CAN_LINK
305+
bool
306+
default $(cc_can_link_user,-m64)
307+
308+
config ARCH_USERFLAGS
309+
string
310+
default "-m64"
311+
297312
config ARCH_SUPPORTS_KEXEC
298313
def_bool y
299314

@@ -704,6 +719,10 @@ config ARCH_SPARSEMEM_ENABLE
704719
config ARCH_SPARSEMEM_DEFAULT
705720
def_bool y
706721

722+
config ILLEGAL_POINTER_VALUE
723+
hex
724+
default 0xdead000000000000
725+
707726
config MAX_PHYSMEM_BITS
708727
int "Maximum size of supported physical memory in bits (42-53)"
709728
range 42 53

arch/s390/boot/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ KBUILD_AFLAGS := $(filter-out $(CC_FLAGS_MARCH),$(KBUILD_AFLAGS_DECOMPRESSOR))
2121
KBUILD_CFLAGS := $(filter-out $(CC_FLAGS_MARCH),$(KBUILD_CFLAGS_DECOMPRESSOR))
2222
KBUILD_AFLAGS += $(CC_FLAGS_MARCH_MINIMUM) -D__DISABLE_EXPORTS
2323
KBUILD_CFLAGS += $(CC_FLAGS_MARCH_MINIMUM) -D__DISABLE_EXPORTS
24+
KBUILD_CFLAGS += $(call cc-option, -Wno-default-const-init-unsafe)
2425

2526
CFLAGS_sclp_early_core.o += -I$(srctree)/drivers/s390/char
2627

arch/s390/boot/startup.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,7 @@ static unsigned long setup_kernel_memory_layout(unsigned long kernel_size)
336336
BUILD_BUG_ON(!IS_ALIGNED(TEXT_OFFSET, THREAD_SIZE));
337337
BUILD_BUG_ON(!IS_ALIGNED(__NO_KASLR_START_KERNEL, THREAD_SIZE));
338338
BUILD_BUG_ON(__NO_KASLR_END_KERNEL > _REGION1_SIZE);
339+
BUILD_BUG_ON(CONFIG_ILLEGAL_POINTER_VALUE < _REGION1_SIZE);
339340
vsize = get_vmem_size(ident_map_size, vmemmap_size, vmalloc_size, _REGION3_SIZE);
340341
boot_debug("vmem size estimated: 0x%016lx\n", vsize);
341342
if (IS_ENABLED(CONFIG_KASAN) || __NO_KASLR_END_KERNEL > _REGION2_SIZE ||

arch/s390/configs/debug_defconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
446446
CONFIG_VIRTIO_BLK=y
447447
CONFIG_BLK_DEV_RBD=m
448448
CONFIG_BLK_DEV_NVME=m
449+
CONFIG_BLK_DEV_NULL_BLK=m
449450
CONFIG_ENCLOSURE_SERVICES=m
450451
CONFIG_GENWQE=m
451452
CONFIG_RAID_ATTRS=m

arch/s390/configs/defconfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,7 @@ CONFIG_BLK_DEV_RAM_SIZE=32768
436436
CONFIG_VIRTIO_BLK=y
437437
CONFIG_BLK_DEV_RBD=m
438438
CONFIG_BLK_DEV_NVME=m
439+
CONFIG_BLK_DEV_NULL_BLK=m
439440
CONFIG_ENCLOSURE_SERVICES=m
440441
CONFIG_GENWQE=m
441442
CONFIG_RAID_ATTRS=m

arch/s390/include/asm/ap.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ union ap_queue_status_reg {
7878
};
7979

8080
/**
81-
* ap_intructions_available() - Test if AP instructions are available.
81+
* ap_instructions_available() - Test if AP instructions are available.
8282
*
8383
* Returns true if the AP instructions are installed, otherwise false.
8484
*/

arch/s390/include/asm/asm-prototypes.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
#include <linux/kvm_host.h>
55
#include <linux/ftrace.h>
6+
#include <asm/bug.h>
67
#include <asm/fpu.h>
78
#include <asm/nospec-branch.h>
89
#include <asm-generic/asm-prototypes.h>

arch/s390/include/asm/asm.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
*/
3131
#if defined(__GCC_ASM_FLAG_OUTPUTS__) && !(IS_ENABLED(CONFIG_CC_ASM_FLAG_OUTPUT_BROKEN))
3232

33-
#define __HAVE_ASM_FLAG_OUTPUTS__
33+
#define __HAVE_ASM_FLAG_OUTPUTS__ 1
3434

3535
#define CC_IPM(sym)
3636
#define CC_OUT(sym, var) "=@cc" (var)

0 commit comments

Comments
 (0)