[GIT PULL] more s390 updates for 6.9 merge window

From: Heiko Carstens
Date: Tue Mar 19 2024 - 10:12:49 EST


Hi Linus,

please pull more s390 updates for the 6.9 merge window.

Thanks,
Heiko

The following changes since commit b0546776ad3f332e215cebc0b063ba4351971cca:

Merge tag 'printk-for-6.9' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux (2024-03-12 20:54:50 -0700)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux.git tags/s390-6.9-2

for you to fetch changes up to 64c3431808bdab2ccef97d7a444018c416b080b5:

s390/entry: compare gmap asce to determine guest/host fault (2024-03-17 19:08:50 +0100)

----------------------------------------------------------------
more s390 updates for 6.9 merge window

- Various virtual vs physical address usage fixes

- Add new bitwise types and helper functions and use them in s390 specific
drivers and code to make it easier to find virtual vs physical address
usage bugs. Right now virtual and physical addresses are identical for
s390, except for module, vmalloc, and similar areas. This will be
changed, hopefully with the next merge window, so that e.g. the kernel
image and modules will be located close to each other, allowing for
direct branches and also for some other simplifications.

As a prerequisite this requires to fix all misuses of virtual and
physical addresses. As it turned out people are so used to the concept
that virtual and physical addresses are the same, that new bugs got added
to code which was already fixed. In order to avoid that even more code
gets merged which adds such bugs add and use new bitwise types, so that
sparse can be used to find such usage bugs.

Most likely the new types can go away again after some time

- Provide a simple ARCH_HAS_DEBUG_VIRTUAL implementation

- Fix kprobe branch handling: if an out-of-line single stepped relative
branch instruction has a target address within a certain address area in
the entry code, the program check handler may incorrectly execute cleanup
code as if KVM code was executed, leading to crashes

- Fix reference counting of zcrypt card objects

- Various other small fixes and cleanups

----------------------------------------------------------------
Alexander Gordeev (2):
s390/sysinfo: allow response buffer in normal memory
s390/iucv: fix receive buffer virtual vs physical address confusion

Andy Shevchenko (1):
s390/cio: use while (i--) pattern to clean up

Gerald Schaefer (1):
s390/dcssblk: fix virtual vs physical address confusion

Halil Pasic (4):
s390/cio: introduce bitwise dma types and helper functions
s390/virtio_ccw: fix virtual vs physical address confusion
s390/virtio_ccw: use DMA handle from DMA API
s390/virtio_ccw: avoid converting dma addresses / handles

Harald Freudenberger (1):
s390/zcrypt: fix reference counting on zcrypt card objects

Heiko Carstens (22):
s390/dasd_eckd: fix virtual vs physical address confusion
s390/cio: fix virtual vs physical address confusion
s390/vfio_ccw: fix virtual vs physical address confusion
s390/cio: use bitwise types to allow for type checking
s390/dasd: remove superfluous virt_to_phys() conversion
s390/dasd: use new address translation helpers
s390/cio,idal: code cleanup
s390/cio,idal: remove superfluous virt_to_phys() conversion
s390/cio,idal: fix virtual vs physical address confusion
s390/cio: use new address translation helpers
s390/scm: use new address translation helpers
s390/vmur: use new address translation helpers
s390/3215: use new address translation helpers
s390/3270: use new address translation helpers
s390/tape: fix virtual vs physical address confusion
s390/zfcp: use new address translation helpers
s390/qeth: use new address translation helpers
s390/lcs: use new address translation helpers
s390/ctcm: use new address translation helpers
s390/iucv: use new address translation helpers
s390/vfio_ccw_cp: use new address translation helpers
s390/mm: provide simple ARCH_HAS_DEBUG_VIRTUAL support

Mete Durlu (1):
s390/vtime: fix average steal time calculation

Ricardo B. Marliere (6):
s390/zcrypt: make zcrypt_class constant
s390/vmur: make vmur_class constant
s390/vmlogrdr: make vmlogrdr_class constant
s390/tape: make tape_class constant
s390/raw3270: improve raw3270_init() readability
s390/raw3270: make class3270 constant

Sven Schnelle (3):
s390/entry: add CIF_SIE flag and remove sie64a() address check
s390/entry: remove OUTSIDE macro
s390/entry: compare gmap asce to determine guest/host fault

arch/s390/Kconfig | 1 +
arch/s390/Makefile | 1 +
arch/s390/configs/debug_defconfig | 1 +
arch/s390/include/asm/ccwdev.h | 3 +-
arch/s390/include/asm/cio.h | 9 +-
arch/s390/include/asm/dma-types.h | 103 ++++++++++++++++++++++
arch/s390/include/asm/eadm.h | 5 +-
arch/s390/include/asm/fcx.h | 13 +--
arch/s390/include/asm/idals.h | 176 ++++++++++++++++++++-----------------
arch/s390/include/asm/page.h | 30 ++++++-
arch/s390/include/asm/processor.h | 2 +
arch/s390/include/asm/ptrace.h | 2 -
arch/s390/include/asm/qdio.h | 17 ++--
arch/s390/include/asm/scsw.h | 7 +-
arch/s390/kernel/entry.S | 73 +++++++--------
arch/s390/kernel/sysinfo.c | 2 +-
arch/s390/kernel/vtime.c | 4 +-
arch/s390/mm/Makefile | 1 +
arch/s390/mm/fault.c | 4 +-
arch/s390/mm/physaddr.c | 15 ++++
drivers/s390/block/dasd.c | 4 +-
drivers/s390/block/dasd_3990_erp.c | 14 +--
drivers/s390/block/dasd_alias.c | 6 +-
drivers/s390/block/dasd_eckd.c | 118 ++++++++++++-------------
drivers/s390/block/dasd_eer.c | 2 +-
drivers/s390/block/dasd_fba.c | 32 +++----
drivers/s390/block/dcssblk.c | 2 +-
drivers/s390/block/scm_blk.c | 6 +-
drivers/s390/char/con3215.c | 4 +-
drivers/s390/char/fs3270.c | 14 +--
drivers/s390/char/raw3270.c | 42 +++++----
drivers/s390/char/raw3270.h | 2 +-
drivers/s390/char/tape.h | 12 ++-
drivers/s390/char/tape_class.c | 17 ++--
drivers/s390/char/vmlogrdr.c | 18 ++--
drivers/s390/char/vmur.c | 22 ++---
drivers/s390/cio/ccwgroup.c | 4 +-
drivers/s390/cio/chsc.c | 12 +--
drivers/s390/cio/chsc.h | 6 +-
drivers/s390/cio/cio.c | 4 +-
drivers/s390/cio/css.c | 25 ++++--
drivers/s390/cio/device_fsm.c | 8 +-
drivers/s390/cio/device_id.c | 2 +-
drivers/s390/cio/device_ops.c | 5 +-
drivers/s390/cio/device_pgid.c | 8 +-
drivers/s390/cio/device_status.c | 2 +-
drivers/s390/cio/eadm_sch.c | 4 +-
drivers/s390/cio/fcx.c | 22 ++---
drivers/s390/cio/orb.h | 9 +-
drivers/s390/cio/qdio_main.c | 12 +--
drivers/s390/cio/qdio_setup.c | 10 +--
drivers/s390/cio/qdio_thinint.c | 6 +-
drivers/s390/cio/vfio_ccw_cp.c | 82 +++++++++--------
drivers/s390/cio/vfio_ccw_fsm.c | 2 +-
drivers/s390/crypto/zcrypt_api.c | 39 ++++----
drivers/s390/net/ctcm_fsms.c | 4 +-
drivers/s390/net/ctcm_main.c | 2 +-
drivers/s390/net/ctcm_mpc.c | 20 ++---
drivers/s390/net/lcs.c | 12 ++-
drivers/s390/net/qeth_core_main.c | 24 ++---
drivers/s390/scsi/zfcp_fsf.c | 2 +-
drivers/s390/scsi/zfcp_qdio.c | 4 +-
drivers/s390/scsi/zfcp_qdio.h | 6 +-
drivers/s390/virtio/virtio_ccw.c | 170 +++++++++++++++++++++--------------
include/net/iucv/iucv.h | 3 +-
net/iucv/af_iucv.c | 8 +-
net/iucv/iucv.c | 23 +++--
67 files changed, 771 insertions(+), 553 deletions(-)
create mode 100644 arch/s390/include/asm/dma-types.h
create mode 100644 arch/s390/mm/physaddr.c