[GIT PULL] s390 updates for 6.6 merge window

From: Heiko Carstens
Date: Sun Aug 27 2023 - 16:35:00 EST


Hi Linus,

please pull s390 updates for the 6.6 merge window.

There will be a merge conflict with Andrew's mm-nonmm-stable tree.
Since the diff of the merge resolution is quite large I'm going to
reply to this mail.

Thanks,
Heiko

The following changes since commit 6eaae198076080886b9e7d57f4ae06fa782f90ef:

Linux 6.5-rc3 (2023-07-23 15:24:10 -0700)

are available in the Git repository at:

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

for you to fetch changes up to dedf98dd1cfb61cfc74be9248b90a49b42c6dead:

s390/pci: use builtin_misc_device macro to simplify the code (2023-08-23 14:37:42 +0200)

----------------------------------------------------------------
s390 updates for 6.6 merge window

- Add vfio-ap support to pass-through crypto devices to secure execution
guests

- Add API ordinal 6 support to zcrypt_ep11misc device drive, which is
required to handle key generate and key derive (e.g. secure key to
protected key) correctly

- Add missing secure/has_secure sysfs files for the case where it is not
possible to figure where a system has been booted from. Existing user
space relies on that these files are always present

- Fix DCSS block device driver list corruption, caused by incorrect
error handling

- Convert virt_to_pfn() and pfn_to_virt() from defines to static inline
functions to enforce type checking

- Cleanups, improvements, and minor fixes to the kernel mapping setup

- Fix various virtual vs physical address confusions

- Move pfault code to separate file, since it has nothing to do with
regular fault handling

- Move s390 documentation to Documentation/arch/ like it has been done
for other architectures already

- Add HAVE_FUNCTION_GRAPH_RETVAL support

- Factor out the s390_hypfs filesystem and add a new config option for
it. The filesystem is deprecated and as soon as all users are gone it
can be removed some time in the not so near future

- Remove support for old CEX2 and CEX3 crypto cards from zcrypt device
driver

- Add support for user-defined certificates: receive user-defined
certificates with a diagnose call and provide them via 'cert_store'
keyring to user space

- Couple of other small fixes and improvements all over the place

----------------------------------------------------------------
Alexander Gordeev (12):
s390/kexec: make machine_kexec() depend on CONFIG_KEXEC_CORE
s390/dcssblk: use IS_ALIGNED() for alignment checks
s390/dcssblk: fix virtual vs physical address confusion
s390/mm: remove redundant check against VMEM_MAX_PHYS
s390/mm: rework arch_get_mappable_range() callback
s390/extmem: improve reporting of -ERANGE error
s390/mm: get rid of VMEM_MAX_PHYS macro
s390/boot: cleanup number of page table levels setup
s390/mm: define Real Memory Copy size and mask macros
s390/boot: account Real Memory Copy and Lowcore areas
s390/boot: fix multi-line comments style
s390/ipl: fix virtual vs physical address confusion

Anastasia Eskova (1):
s390: add support for user-defined certificates

Christophe JAILLET (1):
s390/ebcdic: fix typo in comment

Costa Shulyupin (1):
docs: move s390 under arch

Gerald Schaefer (1):
s390/dcssblk: fix kernel crash with list_add corruption

Harald Freudenberger (1):
s390/zcrypt: remove CEX2 and CEX3 device drivers

Heiko Carstens (16):
s390/diag: handle diag 204 subcode 4 address correctly
s390/sthyi: enforce 4k alignment of vmalloc'ed area
s390/hypfs: simplify memory allocation
s390/hypfs: remove open-coded PTR_ALIGN()
s390/hypfs: factor out filesystem code
s390/diag: fix diagnose 8c description
s390/ftrace: use la instead of aghik in return_to_handler()
s390/defconfigs: set CONFIG_FUNCTION_GRAPH_RETVAL=y
s390/mm: move pfault code to own C file
s390/pfault: use UL instead of ULL
s390/pfault: remove not needed packed and aligned attributes
s390/pfault: use early_param() instead if __setup()
s390/pfault: cleanup inline assemblies
s390/pfault: use consistent comment style
s390/smp: ensure global control register contents are in sync
Merge branch 'vfio-ap' into features

Holger Dengler (8):
s390/pkey: fix/harmonize internal keyblob headers
s390/pkey: fix PKEY_TYPE_EP11_AES handling in PKEY_GENSECK2 IOCTL
s390/pkey: fix PKEY_TYPE_EP11_AES handling in PKEY_CLR2SECK2 IOCTL
s390/pkey: fix PKEY_TYPE_EP11_AES handling in PKEY_KBLOB2PROTK[23]
s390/pkey: fix PKEY_TYPE_EP11_AES handling in PKEY_VERIFYKEY2 IOCTL
s390/pkey: fix PKEY_TYPE_EP11_AES handling for sysfs attributes
s390/paes: fix PKEY_TYPE_EP11_AES handling for secure keyblobs
s390/zcrypt_ep11misc: support API ordinal 6 with empty pin-blob

Janosch Frank (1):
s390/uv: export uv_pin_shared for direct usage

Justin Stitt (1):
s390/ipl: refactor deprecated strncpy

Li Zetao (1):
s390/pci: use builtin_misc_device macro to simplify the code

Linus Walleij (1):
s390/mm: make virt_to_pfn() a static inline

Masahiro Yamada (4):
s390: use obj-y to descend into drivers/s390/
s390: remove unneeded #include <asm/export.h>
s390: replace #include <asm/export.h> with #include <linux/export.h>
s390: remove <asm/export.h>

Sven Schnelle (6):
s390/ftrace: enable HAVE_FUNCTION_GRAPH_RETVAL
s390/hypfs: stop using ENOSYS error code
s390/tracing: pass struct ftrace_regs to ftrace_trace_function
s390/cert_store: select CRYPTO_LIB_SHA256
s390/ipl: add missing secure/has_secure file to ipl type 'unknown'
s390/ipl: add common ipl parameter attribute group

Tony Krowiak (11):
s390/vfio-ap: no need to check the 'E' and 'I' bits in APQSW after TAPQ
s390/vfio-ap: clean up irq resources if possible
s390/vfio-ap: wait for response code 05 to clear on queue reset
s390/vfio-ap: allow deconfigured queue to be passed through to a guest
s390/vfio-ap: remove upper limit on wait for queue reset to complete
s390/vfio-ap: store entire AP queue status word with the queue object
s390/vfio-ap: use work struct to verify queue reset
s390/vfio-ap: handle queue state change in progress on reset
s390/vfio-ap: check for TAPQ response codes 0x35 and 0x36
KVM: s390: export kvm_s390_pv*_is_protected functions
s390/vfio-ap: make sure nib is shared

Yang Yingliang (1):
s390/cert_store: fix error return code in fill_cs_keyring()

Documentation/admin-guide/kernel-parameters.txt | 4 +-
Documentation/arch/index.rst | 2 +-
Documentation/{ => arch}/s390/3270.ChangeLog | 0
Documentation/{ => arch}/s390/3270.rst | 4 +-
Documentation/{ => arch}/s390/cds.rst | 2 +-
Documentation/{ => arch}/s390/common_io.rst | 2 +-
Documentation/{ => arch}/s390/config3270.sh | 0
Documentation/{ => arch}/s390/driver-model.rst | 0
Documentation/{ => arch}/s390/features.rst | 0
Documentation/{ => arch}/s390/index.rst | 0
Documentation/{ => arch}/s390/monreader.rst | 0
Documentation/{ => arch}/s390/pci.rst | 2 +-
Documentation/{ => arch}/s390/qeth.rst | 0
Documentation/{ => arch}/s390/s390dbf.rst | 0
Documentation/{ => arch}/s390/text_files.rst | 0
Documentation/{ => arch}/s390/vfio-ap-locking.rst | 0
Documentation/{ => arch}/s390/vfio-ap.rst | 0
Documentation/{ => arch}/s390/vfio-ccw.rst | 2 +-
Documentation/{ => arch}/s390/zfcpdump.rst | 0
Documentation/driver-api/s390-drivers.rst | 4 +-
MAINTAINERS | 8 +-
arch/s390/Kbuild | 2 +-
arch/s390/Kconfig | 31 +-
arch/s390/Makefile | 1 -
arch/s390/boot/startup.c | 22 +-
arch/s390/configs/debug_defconfig | 1 +
arch/s390/configs/defconfig | 1 +
arch/s390/crypto/paes_s390.c | 2 +-
arch/s390/hypfs/Makefile | 11 +-
arch/s390/hypfs/hypfs.h | 10 +-
arch/s390/hypfs/hypfs_dbfs.c | 31 +-
arch/s390/hypfs/hypfs_diag.c | 453 +-----------
arch/s390/hypfs/hypfs_diag.h | 35 +
arch/s390/hypfs/hypfs_diag_fs.c | 393 +++++++++++
arch/s390/hypfs/hypfs_vm.c | 175 +----
arch/s390/hypfs/hypfs_vm.h | 50 ++
arch/s390/hypfs/hypfs_vm_fs.c | 139 ++++
arch/s390/hypfs/inode.c | 35 +-
arch/s390/include/asm/Kbuild | 1 -
arch/s390/include/asm/debug.h | 4 +-
arch/s390/include/asm/diag.h | 3 +
arch/s390/include/asm/ftrace.h | 17 +
arch/s390/include/asm/kfence.h | 2 +-
arch/s390/include/asm/kvm_host.h | 3 +
arch/s390/include/asm/maccess.h | 3 +
arch/s390/include/asm/page.h | 12 +-
arch/s390/include/asm/pfault.h | 26 +
arch/s390/include/asm/pgtable.h | 2 -
arch/s390/include/asm/sclp.h | 1 +
arch/s390/include/asm/setup.h | 9 +-
arch/s390/include/asm/uv.h | 6 +
arch/s390/include/uapi/asm/pkey.h | 2 +-
arch/s390/kernel/Makefile | 7 +-
arch/s390/kernel/asm-offsets.c | 9 +
arch/s390/kernel/cert_store.c | 811 ++++++++++++++++++++++
arch/s390/kernel/diag.c | 25 +-
arch/s390/kernel/ebcdic.c | 2 +-
arch/s390/kernel/entry.S | 2 +-
arch/s390/kernel/ipl.c | 32 +-
arch/s390/kernel/machine_kexec.c | 1 +
arch/s390/kernel/machine_kexec_file.c | 4 +-
arch/s390/kernel/mcount.S | 65 +-
arch/s390/kernel/setup.c | 3 +-
arch/s390/kernel/smp.c | 16 +-
arch/s390/kernel/sthyi.c | 4 +-
arch/s390/kernel/uv.c | 3 +-
arch/s390/kvm/kvm-s390.h | 12 -
arch/s390/kvm/pv.c | 14 +
arch/s390/lib/mem.S | 2 +-
arch/s390/lib/tishift.S | 2 +-
arch/s390/mm/Makefile | 1 +
arch/s390/mm/cmm.c | 2 +-
arch/s390/mm/dump_pagetables.c | 2 +-
arch/s390/mm/extmem.c | 9 +-
arch/s390/mm/fault.c | 228 ------
arch/s390/mm/maccess.c | 7 +-
arch/s390/mm/pfault.c | 248 +++++++
arch/s390/mm/vmem.c | 4 +-
arch/s390/pci/pci_clp.c | 7 +-
drivers/Makefile | 2 +
drivers/crypto/Kconfig | 7 +-
drivers/s390/block/dcssblk.c | 26 +-
drivers/s390/block/scm_blk.c | 2 +-
drivers/s390/char/sclp_cmd.c | 4 -
drivers/s390/char/sclp_early.c | 1 +
drivers/s390/char/vmcp.c | 2 +-
drivers/s390/char/zcore.c | 2 +-
drivers/s390/crypto/Makefile | 2 +-
drivers/s390/crypto/ap_bus.c | 34 +-
drivers/s390/crypto/ap_bus.h | 20 +-
drivers/s390/crypto/ap_queue.c | 47 +-
drivers/s390/crypto/pkey_api.c | 119 +++-
drivers/s390/crypto/vfio_ap_ops.c | 172 +++--
drivers/s390/crypto/vfio_ap_private.h | 6 +-
drivers/s390/crypto/zcrypt_cex2a.c | 227 ------
drivers/s390/crypto/zcrypt_cex2a.h | 134 ----
drivers/s390/crypto/zcrypt_cex2c.c | 421 -----------
drivers/s390/crypto/zcrypt_cex2c.h | 18 -
drivers/s390/crypto/zcrypt_ep11misc.c | 347 ++++++---
drivers/s390/crypto/zcrypt_ep11misc.h | 24 +-
drivers/s390/crypto/zcrypt_msgtype50.c | 64 +-
drivers/s390/crypto/zcrypt_msgtype50.h | 3 +-
drivers/s390/crypto/zcrypt_msgtype6.c | 14 +-
security/integrity/platform_certs/load_ipl_s390.c | 4 +-
104 files changed, 2580 insertions(+), 2157 deletions(-)
rename Documentation/{ => arch}/s390/3270.ChangeLog (100%)
rename Documentation/{ => arch}/s390/3270.rst (99%)
rename Documentation/{ => arch}/s390/cds.rst (99%)
rename Documentation/{ => arch}/s390/common_io.rst (98%)
rename Documentation/{ => arch}/s390/config3270.sh (100%)
rename Documentation/{ => arch}/s390/driver-model.rst (100%)
rename Documentation/{ => arch}/s390/features.rst (100%)
rename Documentation/{ => arch}/s390/index.rst (100%)
rename Documentation/{ => arch}/s390/monreader.rst (100%)
rename Documentation/{ => arch}/s390/pci.rst (99%)
rename Documentation/{ => arch}/s390/qeth.rst (100%)
rename Documentation/{ => arch}/s390/s390dbf.rst (100%)
rename Documentation/{ => arch}/s390/text_files.rst (100%)
rename Documentation/{ => arch}/s390/vfio-ap-locking.rst (100%)
rename Documentation/{ => arch}/s390/vfio-ap.rst (100%)
rename Documentation/{ => arch}/s390/vfio-ccw.rst (99%)
rename Documentation/{ => arch}/s390/zfcpdump.rst (100%)
create mode 100644 arch/s390/hypfs/hypfs_diag.h
create mode 100644 arch/s390/hypfs/hypfs_diag_fs.c
create mode 100644 arch/s390/hypfs/hypfs_vm.h
create mode 100644 arch/s390/hypfs/hypfs_vm_fs.c
create mode 100644 arch/s390/include/asm/pfault.h
create mode 100644 arch/s390/kernel/cert_store.c
create mode 100644 arch/s390/mm/pfault.c