Skip to content

Commit f5020a0

Browse files
committed
Merge tag 's390-6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
Pull s390 fixes from Alexander Gordeev: - fix memcpy warning about field-spanning write in zcrypt driver - minor updates to defconfigs - remove CONFIG_DEBUG_INFO_BTF from all defconfigs and add btf.config addon config file. It significantly decreases compile time and allows quickly enabling that option into the current kernel config - add kasan.config addon config file which allows to easily enable KASAN into the current kernel config - binutils commit 906f69cf65da ("IBM zSystems: Issue error for *DBL relocs on misaligned symbols") caused several link errors. Always build relocatable kernel to avoid this problem - raise the minimum clang version to 15.0.0 to avoid silent generation of a corrupted code * tag 's390-6.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: scripts/min-tool-version.sh: raise minimum clang version to 15.0.0 for s390 s390: always build relocatable kernel s390/configs: add kasan.config addon config file s390/configs: move CONFIG_DEBUG_INFO_BTF into btf.config addon config s390: update defconfigs s390/zcrypt: fix warning about field-spanning write
2 parents df65494 + 30d17fa commit f5020a0

File tree

11 files changed

+90
-84
lines changed

11 files changed

+90
-84
lines changed

arch/s390/Kconfig

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -568,8 +568,7 @@ config EXPOLINE_FULL
568568
endchoice
569569

570570
config RELOCATABLE
571-
bool "Build a relocatable kernel"
572-
default y
571+
def_bool y
573572
help
574573
This builds a kernel image that retains relocation information
575574
so it can be loaded at an arbitrary address.
@@ -578,10 +577,11 @@ config RELOCATABLE
578577
bootup process.
579578
The relocations make the kernel image about 15% larger (compressed
580579
10%), but are discarded at runtime.
580+
Note: this option exists only for documentation purposes, please do
581+
not remove it.
581582

582583
config RANDOMIZE_BASE
583584
bool "Randomize the address of the kernel image (KASLR)"
584-
depends on RELOCATABLE
585585
default y
586586
help
587587
In support of Kernel Address Space Layout Randomization (KASLR),

arch/s390/Makefile

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,8 @@ KBUILD_AFLAGS_MODULE += -fPIC
1414
KBUILD_CFLAGS_MODULE += -fPIC
1515
KBUILD_AFLAGS += -m64
1616
KBUILD_CFLAGS += -m64
17-
ifeq ($(CONFIG_RELOCATABLE),y)
1817
KBUILD_CFLAGS += -fPIE
1918
LDFLAGS_vmlinux := -pie
20-
endif
2119
aflags_dwarf := -Wa,-gdwarf-2
2220
KBUILD_AFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -D__ASSEMBLY__
2321
ifndef CONFIG_AS_IS_LLVM

arch/s390/boot/Makefile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,8 @@ CFLAGS_sclp_early_core.o += -I$(srctree)/drivers/s390/char
3737

3838
obj-y := head.o als.o startup.o mem_detect.o ipl_parm.o ipl_report.o
3939
obj-y += string.o ebcdic.o sclp_early_core.o mem.o ipl_vmparm.o cmdline.o
40-
obj-y += version.o pgm_check_info.o ctype.o ipl_data.o
40+
obj-y += version.o pgm_check_info.o ctype.o ipl_data.o machine_kexec_reloc.o
4141
obj-$(findstring y, $(CONFIG_PROTECTED_VIRTUALIZATION_GUEST) $(CONFIG_PGSTE)) += uv.o
42-
obj-$(CONFIG_RELOCATABLE) += machine_kexec_reloc.o
4342
obj-$(CONFIG_RANDOMIZE_BASE) += kaslr.o
4443
obj-y += $(if $(CONFIG_KERNEL_UNCOMPRESSED),,decompressor.o) info.o
4544
obj-$(CONFIG_KERNEL_ZSTD) += clz_ctz.o

arch/s390/boot/startup.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -291,8 +291,7 @@ void startup_kernel(void)
291291

292292
clear_bss_section();
293293
copy_bootdata();
294-
if (IS_ENABLED(CONFIG_RELOCATABLE))
295-
handle_relocs(__kaslr_offset);
294+
handle_relocs(__kaslr_offset);
296295

297296
if (__kaslr_offset) {
298297
/*

arch/s390/configs/btf.config

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CONFIG_DEBUG_INFO_BTF=y

arch/s390/configs/debug_defconfig

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -723,52 +723,42 @@ CONFIG_CRYPTO_ECDSA=m
723723
CONFIG_CRYPTO_ECRDSA=m
724724
CONFIG_CRYPTO_SM2=m
725725
CONFIG_CRYPTO_CURVE25519=m
726-
CONFIG_CRYPTO_GCM=y
727-
CONFIG_CRYPTO_CHACHA20POLY1305=m
728-
CONFIG_CRYPTO_AEGIS128=m
729-
CONFIG_CRYPTO_SEQIV=y
730-
CONFIG_CRYPTO_CFB=m
731-
CONFIG_CRYPTO_LRW=m
732-
CONFIG_CRYPTO_PCBC=m
733-
CONFIG_CRYPTO_KEYWRAP=m
734-
CONFIG_CRYPTO_ADIANTUM=m
735-
CONFIG_CRYPTO_HCTR2=m
736-
CONFIG_CRYPTO_XCBC=m
737-
CONFIG_CRYPTO_VMAC=m
738-
CONFIG_CRYPTO_CRC32=m
739-
CONFIG_CRYPTO_CRC32_S390=y
740-
CONFIG_CRYPTO_MD4=m
741-
CONFIG_CRYPTO_MD5=y
742-
CONFIG_CRYPTO_MICHAEL_MIC=m
743-
CONFIG_CRYPTO_RMD160=m
744-
CONFIG_CRYPTO_SHA512_S390=m
745-
CONFIG_CRYPTO_SHA1_S390=m
746-
CONFIG_CRYPTO_SHA256_S390=m
747-
CONFIG_CRYPTO_SHA3=m
748-
CONFIG_CRYPTO_SHA3_256_S390=m
749-
CONFIG_CRYPTO_SHA3_512_S390=m
750-
CONFIG_CRYPTO_SM3_GENERIC=m
751-
CONFIG_CRYPTO_WP512=m
752-
CONFIG_CRYPTO_GHASH_S390=m
753726
CONFIG_CRYPTO_AES_TI=m
754-
CONFIG_CRYPTO_AES_S390=m
755727
CONFIG_CRYPTO_ANUBIS=m
756-
CONFIG_CRYPTO_ARC4=m
728+
CONFIG_CRYPTO_ARIA=m
757729
CONFIG_CRYPTO_BLOWFISH=m
758730
CONFIG_CRYPTO_CAMELLIA=m
759731
CONFIG_CRYPTO_CAST5=m
760732
CONFIG_CRYPTO_CAST6=m
761733
CONFIG_CRYPTO_DES=m
762-
CONFIG_CRYPTO_DES_S390=m
763734
CONFIG_CRYPTO_FCRYPT=m
764735
CONFIG_CRYPTO_KHAZAD=m
765-
CONFIG_CRYPTO_CHACHA_S390=m
766736
CONFIG_CRYPTO_SEED=m
767-
CONFIG_CRYPTO_ARIA=m
768737
CONFIG_CRYPTO_SERPENT=m
769738
CONFIG_CRYPTO_SM4_GENERIC=m
770739
CONFIG_CRYPTO_TEA=m
771740
CONFIG_CRYPTO_TWOFISH=m
741+
CONFIG_CRYPTO_ADIANTUM=m
742+
CONFIG_CRYPTO_ARC4=m
743+
CONFIG_CRYPTO_CFB=m
744+
CONFIG_CRYPTO_HCTR2=m
745+
CONFIG_CRYPTO_KEYWRAP=m
746+
CONFIG_CRYPTO_LRW=m
747+
CONFIG_CRYPTO_PCBC=m
748+
CONFIG_CRYPTO_AEGIS128=m
749+
CONFIG_CRYPTO_CHACHA20POLY1305=m
750+
CONFIG_CRYPTO_GCM=y
751+
CONFIG_CRYPTO_SEQIV=y
752+
CONFIG_CRYPTO_MD4=m
753+
CONFIG_CRYPTO_MD5=y
754+
CONFIG_CRYPTO_MICHAEL_MIC=m
755+
CONFIG_CRYPTO_RMD160=m
756+
CONFIG_CRYPTO_SHA3=m
757+
CONFIG_CRYPTO_SM3_GENERIC=m
758+
CONFIG_CRYPTO_VMAC=m
759+
CONFIG_CRYPTO_WP512=m
760+
CONFIG_CRYPTO_XCBC=m
761+
CONFIG_CRYPTO_CRC32=m
772762
CONFIG_CRYPTO_842=m
773763
CONFIG_CRYPTO_LZ4=m
774764
CONFIG_CRYPTO_LZ4HC=m
@@ -779,6 +769,16 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
779769
CONFIG_CRYPTO_USER_API_RNG=m
780770
CONFIG_CRYPTO_USER_API_AEAD=m
781771
CONFIG_CRYPTO_STATS=y
772+
CONFIG_CRYPTO_CRC32_S390=y
773+
CONFIG_CRYPTO_SHA512_S390=m
774+
CONFIG_CRYPTO_SHA1_S390=m
775+
CONFIG_CRYPTO_SHA256_S390=m
776+
CONFIG_CRYPTO_SHA3_256_S390=m
777+
CONFIG_CRYPTO_SHA3_512_S390=m
778+
CONFIG_CRYPTO_GHASH_S390=m
779+
CONFIG_CRYPTO_AES_S390=m
780+
CONFIG_CRYPTO_DES_S390=m
781+
CONFIG_CRYPTO_CHACHA_S390=m
782782
CONFIG_ZCRYPT=m
783783
CONFIG_PKEY=m
784784
CONFIG_CRYPTO_PAES_S390=m
@@ -797,7 +797,6 @@ CONFIG_CMA_SIZE_MBYTES=0
797797
CONFIG_PRINTK_TIME=y
798798
CONFIG_DYNAMIC_DEBUG=y
799799
CONFIG_DEBUG_INFO_DWARF4=y
800-
CONFIG_DEBUG_INFO_BTF=y
801800
CONFIG_GDB_SCRIPTS=y
802801
CONFIG_HEADERS_INSTALL=y
803802
CONFIG_DEBUG_SECTION_MISMATCH=y

arch/s390/configs/defconfig

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -707,53 +707,43 @@ CONFIG_CRYPTO_ECDSA=m
707707
CONFIG_CRYPTO_ECRDSA=m
708708
CONFIG_CRYPTO_SM2=m
709709
CONFIG_CRYPTO_CURVE25519=m
710-
CONFIG_CRYPTO_GCM=y
711-
CONFIG_CRYPTO_CHACHA20POLY1305=m
712-
CONFIG_CRYPTO_AEGIS128=m
713-
CONFIG_CRYPTO_SEQIV=y
714-
CONFIG_CRYPTO_CFB=m
715-
CONFIG_CRYPTO_LRW=m
716-
CONFIG_CRYPTO_OFB=m
717-
CONFIG_CRYPTO_PCBC=m
718-
CONFIG_CRYPTO_KEYWRAP=m
719-
CONFIG_CRYPTO_ADIANTUM=m
720-
CONFIG_CRYPTO_HCTR2=m
721-
CONFIG_CRYPTO_XCBC=m
722-
CONFIG_CRYPTO_VMAC=m
723-
CONFIG_CRYPTO_CRC32=m
724-
CONFIG_CRYPTO_CRC32_S390=y
725-
CONFIG_CRYPTO_MD4=m
726-
CONFIG_CRYPTO_MD5=y
727-
CONFIG_CRYPTO_MICHAEL_MIC=m
728-
CONFIG_CRYPTO_RMD160=m
729-
CONFIG_CRYPTO_SHA512_S390=m
730-
CONFIG_CRYPTO_SHA1_S390=m
731-
CONFIG_CRYPTO_SHA256_S390=m
732-
CONFIG_CRYPTO_SHA3=m
733-
CONFIG_CRYPTO_SHA3_256_S390=m
734-
CONFIG_CRYPTO_SHA3_512_S390=m
735-
CONFIG_CRYPTO_SM3_GENERIC=m
736-
CONFIG_CRYPTO_WP512=m
737-
CONFIG_CRYPTO_GHASH_S390=m
738710
CONFIG_CRYPTO_AES_TI=m
739-
CONFIG_CRYPTO_AES_S390=m
740711
CONFIG_CRYPTO_ANUBIS=m
741-
CONFIG_CRYPTO_ARC4=m
712+
CONFIG_CRYPTO_ARIA=m
742713
CONFIG_CRYPTO_BLOWFISH=m
743714
CONFIG_CRYPTO_CAMELLIA=m
744715
CONFIG_CRYPTO_CAST5=m
745716
CONFIG_CRYPTO_CAST6=m
746717
CONFIG_CRYPTO_DES=m
747-
CONFIG_CRYPTO_DES_S390=m
748718
CONFIG_CRYPTO_FCRYPT=m
749719
CONFIG_CRYPTO_KHAZAD=m
750-
CONFIG_CRYPTO_CHACHA_S390=m
751720
CONFIG_CRYPTO_SEED=m
752-
CONFIG_CRYPTO_ARIA=m
753721
CONFIG_CRYPTO_SERPENT=m
754722
CONFIG_CRYPTO_SM4_GENERIC=m
755723
CONFIG_CRYPTO_TEA=m
756724
CONFIG_CRYPTO_TWOFISH=m
725+
CONFIG_CRYPTO_ADIANTUM=m
726+
CONFIG_CRYPTO_ARC4=m
727+
CONFIG_CRYPTO_CFB=m
728+
CONFIG_CRYPTO_HCTR2=m
729+
CONFIG_CRYPTO_KEYWRAP=m
730+
CONFIG_CRYPTO_LRW=m
731+
CONFIG_CRYPTO_OFB=m
732+
CONFIG_CRYPTO_PCBC=m
733+
CONFIG_CRYPTO_AEGIS128=m
734+
CONFIG_CRYPTO_CHACHA20POLY1305=m
735+
CONFIG_CRYPTO_GCM=y
736+
CONFIG_CRYPTO_SEQIV=y
737+
CONFIG_CRYPTO_MD4=m
738+
CONFIG_CRYPTO_MD5=y
739+
CONFIG_CRYPTO_MICHAEL_MIC=m
740+
CONFIG_CRYPTO_RMD160=m
741+
CONFIG_CRYPTO_SHA3=m
742+
CONFIG_CRYPTO_SM3_GENERIC=m
743+
CONFIG_CRYPTO_VMAC=m
744+
CONFIG_CRYPTO_WP512=m
745+
CONFIG_CRYPTO_XCBC=m
746+
CONFIG_CRYPTO_CRC32=m
757747
CONFIG_CRYPTO_842=m
758748
CONFIG_CRYPTO_LZ4=m
759749
CONFIG_CRYPTO_LZ4HC=m
@@ -764,6 +754,16 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
764754
CONFIG_CRYPTO_USER_API_RNG=m
765755
CONFIG_CRYPTO_USER_API_AEAD=m
766756
CONFIG_CRYPTO_STATS=y
757+
CONFIG_CRYPTO_CRC32_S390=y
758+
CONFIG_CRYPTO_SHA512_S390=m
759+
CONFIG_CRYPTO_SHA1_S390=m
760+
CONFIG_CRYPTO_SHA256_S390=m
761+
CONFIG_CRYPTO_SHA3_256_S390=m
762+
CONFIG_CRYPTO_SHA3_512_S390=m
763+
CONFIG_CRYPTO_GHASH_S390=m
764+
CONFIG_CRYPTO_AES_S390=m
765+
CONFIG_CRYPTO_DES_S390=m
766+
CONFIG_CRYPTO_CHACHA_S390=m
767767
CONFIG_ZCRYPT=m
768768
CONFIG_PKEY=m
769769
CONFIG_CRYPTO_PAES_S390=m
@@ -781,7 +781,6 @@ CONFIG_CMA_SIZE_MBYTES=0
781781
CONFIG_PRINTK_TIME=y
782782
CONFIG_DYNAMIC_DEBUG=y
783783
CONFIG_DEBUG_INFO_DWARF4=y
784-
CONFIG_DEBUG_INFO_BTF=y
785784
CONFIG_GDB_SCRIPTS=y
786785
CONFIG_DEBUG_SECTION_MISMATCH=y
787786
CONFIG_MAGIC_SYSRQ=y

arch/s390/configs/kasan.config

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
CONFIG_KASAN=y
2+
CONFIG_KASAN_INLINE=y
3+
CONFIG_KASAN_VMALLOC=y

arch/s390/configs/zfcpdump_defconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,6 @@ CONFIG_PRINTK_TIME=y
7474
# CONFIG_SYMBOLIC_ERRNAME is not set
7575
CONFIG_DEBUG_KERNEL=y
7676
CONFIG_DEBUG_INFO_DWARF4=y
77-
CONFIG_DEBUG_INFO_BTF=y
7877
CONFIG_DEBUG_FS=y
7978
CONFIG_PANIC_ON_OOPS=y
8079
# CONFIG_SCHED_DEBUG is not set

drivers/s390/crypto/zcrypt_msgtype6.c

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,10 @@ static int xcrb_msg_to_type6cprb_msgx(bool userspace, struct ap_message *ap_msg,
342342
};
343343
struct {
344344
struct type6_hdr hdr;
345-
struct CPRBX cprbx;
345+
union {
346+
struct CPRBX cprbx;
347+
DECLARE_FLEX_ARRAY(u8, userdata);
348+
};
346349
} __packed * msg = ap_msg->msg;
347350

348351
int rcblen = CEIL4(xcrb->request_control_blk_length);
@@ -403,7 +406,8 @@ static int xcrb_msg_to_type6cprb_msgx(bool userspace, struct ap_message *ap_msg,
403406
msg->hdr.fromcardlen2 = xcrb->reply_data_length;
404407

405408
/* prepare CPRB */
406-
if (z_copy_from_user(userspace, &msg->cprbx, xcrb->request_control_blk_addr,
409+
if (z_copy_from_user(userspace, msg->userdata,
410+
xcrb->request_control_blk_addr,
407411
xcrb->request_control_blk_length))
408412
return -EFAULT;
409413
if (msg->cprbx.cprb_len + sizeof(msg->hdr.function_code) >
@@ -469,9 +473,14 @@ static int xcrb_msg_to_type6_ep11cprb_msgx(bool userspace, struct ap_message *ap
469473

470474
struct {
471475
struct type6_hdr hdr;
472-
struct ep11_cprb cprbx;
473-
unsigned char pld_tag; /* fixed value 0x30 */
474-
unsigned char pld_lenfmt; /* payload length format */
476+
union {
477+
struct {
478+
struct ep11_cprb cprbx;
479+
unsigned char pld_tag; /* fixed value 0x30 */
480+
unsigned char pld_lenfmt; /* length format */
481+
} __packed;
482+
DECLARE_FLEX_ARRAY(u8, userdata);
483+
};
475484
} __packed * msg = ap_msg->msg;
476485

477486
struct pld_hdr {
@@ -500,7 +509,7 @@ static int xcrb_msg_to_type6_ep11cprb_msgx(bool userspace, struct ap_message *ap
500509
msg->hdr.fromcardlen1 = xcrb->resp_len;
501510

502511
/* Import CPRB data from the ioctl input parameter */
503-
if (z_copy_from_user(userspace, &msg->cprbx.cprb_len,
512+
if (z_copy_from_user(userspace, msg->userdata,
504513
(char __force __user *)xcrb->req, xcrb->req_len)) {
505514
return -EFAULT;
506515
}

0 commit comments

Comments
 (0)