[GIT PULL] s390 patches for the 5.4 merge window

From: Vasily Gorbik
Date: Tue Sep 17 2019 - 10:28:03 EST


Hello Linus,

please pull s390 fixes and features for 5.4.

The following changes since commit 609488bc979f99f805f34e9a32c1e3b71179d10b:

Linux 5.3-rc2 (2019-07-28 12:47:02 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-5.4-1

for you to fetch changes up to 2735913c1079b7dd7ec1d746c13a84ec1b5ea276:

s390: remove pointless drivers-y in drivers/s390/Makefile (2019-09-16 13:21:51 +0200)

Please note the following easy to resolve merge conflict:

diff --cc arch/s390/configs/debug_defconfig
index 74e78ec5beb6,a08e3dcd3e9d..347f48702edb
--- a/arch/s390/configs/debug_defconfig
+++ b/arch/s390/configs/debug_defconfig
@@@ -638,99 -580,6 +638,101 @@@ CONFIG_NLS_ISO8859_1=
CONFIG_NLS_ISO8859_15=m
CONFIG_NLS_UTF8=m
CONFIG_DLM=m
+CONFIG_UNICODE=y
+CONFIG_PERSISTENT_KEYRINGS=y
+CONFIG_BIG_KEYS=y
+CONFIG_ENCRYPTED_KEYS=m
+CONFIG_SECURITY=y
+CONFIG_SECURITY_NETWORK=y
+CONFIG_FORTIFY_SOURCE=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_SELINUX_DISABLE=y
+CONFIG_INTEGRITY_SIGNATURE=y
+CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y
+CONFIG_IMA=y
+CONFIG_IMA_DEFAULT_HASH_SHA256=y
+CONFIG_IMA_WRITE_POLICY=y
+CONFIG_IMA_APPRAISE=y
+CONFIG_CRYPTO_USER=m
+# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_TEST=m
+CONFIG_CRYPTO_DH=m
+CONFIG_CRYPTO_ECDH=m
+CONFIG_CRYPTO_ECRDSA=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_AEGIS128L=m
+CONFIG_CRYPTO_AEGIS256=m
+CONFIG_CRYPTO_MORUS640=m
+CONFIG_CRYPTO_MORUS1280=m
+CONFIG_CRYPTO_CFB=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_KEYWRAP=m
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_XCBC=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_CRC32=m
+CONFIG_CRYPTO_XXHASH=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD128=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_RMD256=m
+CONFIG_CRYPTO_RMD320=m
+CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_SM3=m
+CONFIG_CRYPTO_TGR192=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_AES_TI=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SALSA20=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_SM4=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_842=m
+CONFIG_CRYPTO_LZ4=m
+CONFIG_CRYPTO_LZ4HC=m
+CONFIG_CRYPTO_ZSTD=m
+CONFIG_CRYPTO_ANSI_CPRNG=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_USER_API_AEAD=m
+CONFIG_CRYPTO_STATS=y
+CONFIG_ZCRYPT=m
+CONFIG_PKEY=m
+CONFIG_CRYPTO_PAES_S390=m
+CONFIG_CRYPTO_SHA1_S390=m
+CONFIG_CRYPTO_SHA256_S390=m
+CONFIG_CRYPTO_SHA512_S390=m
++CONFIG_CRYPTO_SHA3_256_S390=m
++CONFIG_CRYPTO_SHA3_512_S390=m
+CONFIG_CRYPTO_DES_S390=m
+CONFIG_CRYPTO_AES_S390=m
+CONFIG_CRYPTO_GHASH_S390=m
+CONFIG_CRYPTO_CRC32_S390=y
+CONFIG_CORDIC=m
+CONFIG_CRC32_SELFTEST=y
+CONFIG_CRC4=m
+CONFIG_CRC7=m
+CONFIG_CRC8=m
+CONFIG_RANDOM32_SELFTEST=y
+CONFIG_DMA_CMA=y
+CONFIG_CMA_SIZE_MBYTES=0
+CONFIG_DMA_API_DEBUG=y
+CONFIG_STRING_SELFTEST=y
CONFIG_PRINTK_TIME=y
CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_INFO=y

And another one with the crypto tree if you pull it first:

diff --cc arch/s390/crypto/aes_s390.c
index d4f6fd42a105,6d2dbb5089d5..9803e96d2924
--- a/arch/s390/crypto/aes_s390.c
+++ b/arch/s390/crypto/aes_s390.c
@@@ -586,7 -586,10 +586,10 @@@ static int xts_aes_encrypt(struct blkci
struct s390_xts_ctx *xts_ctx = crypto_blkcipher_ctx(desc->tfm);
struct blkcipher_walk walk;

+ if (!nbytes)
+ return -EINVAL;
+
- if (unlikely(!xts_ctx->fc))
+ if (unlikely(!xts_ctx->fc || (nbytes % XTS_BLOCK_SIZE) != 0))
return xts_fallback_encrypt(desc, dst, src, nbytes);

blkcipher_walk_init(&walk, dst, src, nbytes);
@@@ -600,7 -603,10 +603,10 @@@ static int xts_aes_decrypt(struct blkci
struct s390_xts_ctx *xts_ctx = crypto_blkcipher_ctx(desc->tfm);
struct blkcipher_walk walk;

+ if (!nbytes)
+ return -EINVAL;
+
- if (unlikely(!xts_ctx->fc))
+ if (unlikely(!xts_ctx->fc || (nbytes % XTS_BLOCK_SIZE) != 0))
return xts_fallback_decrypt(desc, dst, src, nbytes);

blkcipher_walk_init(&walk, dst, src, nbytes);

Thank you,
Vasily
----------------------------------------------------------------
s390 updates for the 5.4 merge window

- Add support for IBM z15 machines.

- Add SHA3 and CCA AES cipher key support in zcrypt and pkey refactoring.

- Move to arch_stack_walk infrastructure for the stack unwinder.

- Various kasan fixes and improvements.

- Various command line parsing fixes.

- Improve decompressor phase debuggability.

- Lift no bss usage restriction for the early code.

- Use refcount_t for reference counters for couple of places in
mm code.

- Logging improvements and return code fix in vfio-ccw code.

- Couple of zpci fixes and minor refactoring.

- Remove some outdated documentation.

- Fix secure boot detection.

- Other various minor code clean ups.

----------------------------------------------------------------
Chuhong Yuan (2):
s390/extmem: use refcount_t for refcount
s390/mm: use refcount_t for refcount

Cornelia Huck (1):
vfio-ccw: add some logging

Denis Efremov (1):
s390/pci: PCI_IOV_RESOURCES loop refactoring in zpci_map_resources

Halil Pasic (1):
s390: vfio-ap: fix warning reset not completed

Harald Freudenberger (10):
s390/zcrypt: move cca misc functions to new code file
s390/zcrypt: add base code for cca crypto card info support
s390/zcrypt: new sysfs attributes serialnr and mkvps
s390/pkey: pkey cleanup: narrow in-kernel API, fix some variable types
s390/zcrypt: extend cca_findcard function and helper
s390/zcrypt: Add low level functions for CCA AES cipher keys
s390/pkey: add CCA AES cipher key support
s390/paes: Prepare paes functions for large key blobs
s390/zcrypt: fix wrong handling of cca cipher keygenflags
s390/crypto: xts-aes-s390 fix extra run-time crypto self tests finding

Heiko Carstens (2):
Documentation/s390: remove outdated dasd documentation
Documentation/s390: remove outdated debugging390 documentation

Joerg Schmidbauer (1):
s390/crypto: Support for SHA3 via CPACF (MSA6)

Martin Schwidefsky (1):
s390: add support for IBM z15 machines

Masahiro Yamada (1):
s390: remove pointless drivers-y in drivers/s390/Makefile

Philipp Rudo (1):
s390/sclp: Fix bit checked for has_sipl

Sebastian Ott (1):
s390/pci: fix MSI message data

Thomas Richter (1):
s390/cpum_sf: Fix line length and format string

Vasily Gorbik (25):
s390: move vmalloc option parsing to startup code
s390/startup: add initial pgm check handler
s390/startup: purge obsolete .gitignore patterns
s390: clean .bss before running uncompressed kernel
s390/kasan: provide uninstrumented __strlen
s390/process: avoid potential reading of freed stack
s390/kasan: avoid report in get_wchan
s390/stacktrace: use common arch_stack_walk infrastructure
s390/startup: adjust _sdma and _edma to page boundaries
s390/startup: round down "mem" option to page boundary
s390/numa: correct early_param handling
s390/vmcp: correct early_param handling
s390/startup: correct command line options parsing
s390/vdso: reuse kstrtobool for option value parsing
s390/cmma: reuse kstrtobool for option value parsing
s390/mem_detect: provide single get_mem_detect_end
s390/kaslr: reserve memory for kasan usage
s390/pci: avoid using strncmp with hardcoded length
s390/module: avoid using strncmp with hardcoded length
s390/sclp: avoid using strncmp with hardcoded length
s390/setup: avoid using strncmp with hardcoded length
s390/kasan: add kdump support
Merge tag 'vfio-ccw-20190828' of https://git.kernel.org/.../kvms390/vfio-ccw into features
s390/base: remove unused s390_base_mcck_handler
s390/startup: add pgm check info printing

Wei Yongjun (1):
vfio-ccw: fix error return code in vfio_ccw_sch_init()

Documentation/s390/dasd.rst | 84 -
Documentation/s390/debugging390.rst | 2613 -------------------------------
Documentation/s390/index.rst | 2 -
arch/s390/Kconfig | 19 +
arch/s390/Makefile | 2 +
arch/s390/boot/Makefile | 2 +-
arch/s390/boot/boot.h | 1 +
arch/s390/boot/compressed/.gitignore | 3 -
arch/s390/boot/compressed/vmlinux.lds.S | 3 +-
arch/s390/boot/head.S | 32 +-
arch/s390/boot/ipl_parm.c | 11 +-
arch/s390/boot/kaslr.c | 41 +-
arch/s390/boot/mem_detect.c | 7 -
arch/s390/boot/pgm_check_info.c | 90 ++
arch/s390/boot/startup.c | 6 +
arch/s390/configs/debug_defconfig | 2 +
arch/s390/configs/defconfig | 2 +
arch/s390/crypto/Makefile | 2 +
arch/s390/crypto/aes_s390.c | 6 +
arch/s390/crypto/paes_s390.c | 184 ++-
arch/s390/crypto/sha.h | 12 +-
arch/s390/crypto/sha3_256_s390.c | 147 ++
arch/s390/crypto/sha3_512_s390.c | 155 ++
arch/s390/crypto/sha_common.c | 75 +-
arch/s390/include/asm/cpacf.h | 8 +
arch/s390/include/asm/gmap.h | 4 +-
arch/s390/include/asm/mem_detect.h | 12 +
arch/s390/include/asm/pgtable.h | 1 +
arch/s390/include/asm/pkey.h | 114 +-
arch/s390/include/asm/processor.h | 2 -
arch/s390/include/asm/setup.h | 1 +
arch/s390/include/asm/string.h | 9 +-
arch/s390/include/uapi/asm/pkey.h | 257 ++-
arch/s390/kernel/Makefile | 13 +-
arch/s390/kernel/base.S | 21 -
arch/s390/kernel/early.c | 16 +
arch/s390/kernel/early_nobss.c | 45 -
arch/s390/kernel/early_printk.c | 2 +-
arch/s390/kernel/head64.S | 8 +-
arch/s390/kernel/module.c | 4 +-
arch/s390/kernel/perf_cpum_sf.c | 20 +-
arch/s390/kernel/process.c | 26 +-
arch/s390/kernel/setup.c | 27 +-
arch/s390/kernel/stacktrace.c | 50 +-
arch/s390/kernel/vdso.c | 18 +-
arch/s390/lib/Makefile | 3 -
arch/s390/mm/extmem.c | 11 +-
arch/s390/mm/gmap.c | 10 +-
arch/s390/mm/kasan_init.c | 14 +-
arch/s390/mm/page-states.c | 14 +-
arch/s390/numa/mode_emu.c | 7 +-
arch/s390/numa/numa.c | 2 +
arch/s390/pci/pci.c | 8 +-
arch/s390/pci/pci_dma.c | 4 +-
arch/s390/pci/pci_irq.c | 2 +-
arch/s390/tools/gen_facilities.c | 3 +
drivers/crypto/Kconfig | 20 +
drivers/s390/Makefile | 3 -
drivers/s390/char/Makefile | 3 -
drivers/s390/char/sclp_early.c | 2 +-
drivers/s390/char/vmcp.c | 2 +
drivers/s390/cio/vfio_ccw_drv.c | 58 +-
drivers/s390/cio/vfio_ccw_fsm.c | 51 +-
drivers/s390/cio/vfio_ccw_ops.c | 10 +
drivers/s390/cio/vfio_ccw_private.h | 17 +
drivers/s390/crypto/Makefile | 2 +-
drivers/s390/crypto/pkey_api.c | 1638 ++++++++-----------
drivers/s390/crypto/vfio_ap_ops.c | 2 +-
drivers/s390/crypto/zcrypt_api.c | 30 +
drivers/s390/crypto/zcrypt_api.h | 7 +-
drivers/s390/crypto/zcrypt_ccamisc.c | 1765 +++++++++++++++++++++
drivers/s390/crypto/zcrypt_ccamisc.h | 217 +++
drivers/s390/crypto/zcrypt_cex4.c | 106 +-
73 files changed, 4047 insertions(+), 4123 deletions(-)
delete mode 100644 Documentation/s390/dasd.rst
delete mode 100644 Documentation/s390/debugging390.rst
create mode 100644 arch/s390/boot/pgm_check_info.c
create mode 100644 arch/s390/crypto/sha3_256_s390.c
create mode 100644 arch/s390/crypto/sha3_512_s390.c
delete mode 100644 arch/s390/kernel/early_nobss.c
create mode 100644 drivers/s390/crypto/zcrypt_ccamisc.c
create mode 100644 drivers/s390/crypto/zcrypt_ccamisc.h