[GIT PULL] s390 updates for 6.2 merge window

From: Alexander Gordeev
Date: Mon Dec 12 2022 - 11:44:39 EST


Hello Linus,

please pull s390 changes for 6.2 merge window.

Thank you,
Alexander

The following changes since commit 247f34f7b80357943234f93f247a1ae6b6c3a740:

Linux 6.1-rc2 (2022-10-23 15:27:33 -0700)

are available in the Git repository at:

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

for you to fetch changes up to bb3860cc02c660b409a1e02521b84b1d7d4e84cd:

s390/nmi: get rid of private slab cache (2022-11-30 19:43:28 +0100)

----------------------------------------------------------------
s390 updates for 6.2 merge window

- Factor out handle_write() function and simplify 3215 console
write operation.

- When 3170 terminal emulator is connected to the 3215 console
driver the boot time could be very long due to limited buffer
space or missing operator input. Add con3215_drop command line
parameter and con3215_drop sysfs attribute file to instruct
the kernel drop console data when such conditions are met.

- Fix white space errors in 3215 console driver.

- Move enum paiext_mode definition to a header file and rename
it to paievt_mode to indicate this is now used for several
events. Rename PAI_MODE_COUNTER to PAI_MODE_COUNTING to make
consistent with PAI_MODE_SAMPLING.

- Simplify the logic of PMU pai_crypto mapped buffer reference
counter and make it consistent with PMU pai_ext.

- Rename PMU pai_crypto mapped buffer structure member users
to active_events to make it consistent with PMU pai_ext.

- Enable HUGETLB_PAGE_OPTIMIZE_VMEMMAP configuration option.
This results in saving of 12K per 1M hugetlb page (~1.2%)
and 32764K per 2G hugetlb page (~1.6%).

- Use generic serial.h, bugs.h, shmparam.h and vga.h header
files and scrap s390-specific versions.

- The generic percpu setup code does not expect the s390-like
implementation and emits a warning. To get rid of that warning
and provide sane CPU-to-node and CPU-to-CPU distance mappings
implementat a minimal version of setup_per_cpu_areas().

- Use kstrtobool() instead of strtobool() for re-IPL sysfs device
attributes.

- Avoid unnecessary lookup of a pointer to MSI descriptor when
setting IRQ affinity for a PCI device.

- Get rid of "an incompatible function type cast" warning by
changing debug_sprintf_format_fn() function prototype so it
matches the debug_format_proc_t function type.

- Remove unused info_blk_hdr__pcpus() and get_page_state()
functions.

- Get rid of clang "unused unused insn cache ops function"
warning by moving s390_insn definition to a private header.

- Get rid of clang "unused function" warning by making function
raw3270_state_final() only available if CONFIG_TN3270_CONSOLE
is enabled.

- Use kstrobool() to parse sclp_con_drop parameter to make it
identical to the con3215_drop parameter and allow passing
values like "yes" and "true".

- Use sysfs_emit() for all SCLP sysfs show functions, which is
the current standard way to generate output strings.

- Make SCLP con_drop sysfs attribute also writable and allow to
change its value during runtime. This makes SCLP console drop
handling consistent with the 3215 device driver.

- Virtual and physical addresses are indentical on s390. However,
there is still a confusion when pointers are directly casted to
physical addresses or vice versa. Use correct address converters
virt_to_phys() and phys_to_virt() for s390 channel IO drivers.

- Support for power managemant has been removed from s390 since
quite some time. Remove unused power managemant code from the
appldata device driver.

- Allow memory tools like KASAN see memory accesses from the
checksum code. Switch to GENERIC_CSUM if KASAN is enabled,
just like x86 does.

- Add support of ECKD DASDs disks so it could be used as boot
and dump devices.

- Follow checkpatch recommendations and use octal values instead
of S_IRUGO and S_IWUSR for dump device attributes in sysfs.

- Changes to vx-insn.h do not cause a recompile of C files that
use asm(".include \"asm/vx-insn.h\"\n") magic to access vector
instruction macros from inline assemblies. Add wrapper include
header file to avoid this problem.

- Use vector instruction macros instead of byte patterns to
increase register validation routine readability.

- The current machine check register validation handling does not
take into account various scenarios and might lead to killing a
wrong user process or potentially ignore corrupted FPU registers.
Simplify logic of the machine check handler and stop the whole
machine if the previous context was kerenel mode. If the previous
context was user mode, kill the current task.

- Introduce sclp_emergency_printk() function which can be used to
emit a message in emergency cases. It is supposed to be used in
cases where regular console device drivers may not work anymore,
e.g. unrecoverable machine checks.

Keep the early Service-Call Control Block so it can also be used
after initdata has been freed to allow sclp_emergency_printk()
implementation.

- In case a system will be stopped because of an unrecoverable
machine check error print the machine check interruption code
to give a hint of what went wrong.

- Move storage error checking from the assembly entry code to C
in order to simplify machine check handling. Enter the handler
with DAT turned on, which simplifies the entry code even more.

- The machine check extended save areas are allocated using
a private "nmi_save_areas" slab cache which guarantees a
required power-of-two alignment. Get rid of that cache in
favour of kmalloc().

----------------------------------------------------------------
Alexander Gordeev (2):
s390/cio: sort out physical vs virtual pointers usage
vfio/ccw: sort out physical vs virtual pointers usage

Christophe JAILLET (1):
s390/ipl: Use kstrtobool() instead of strtobool()

Eric Farman (1):
vfio/ccw: identify CCW data addresses as physical

Gerald Schaefer (1):
s390: select ARCH_WANT_HUGETLB_PAGE_OPTIMIZE_VMEMMAP

Heiko Carstens (23):
s390: use generic serial.h header file
s390: use generic bugs.h header file
s390: use generic shmparam.h header file
s390: use generic vga.h header file
s390/mm: provide minimal setup_per_cpu_areas() implementation
s390/debug: remove function type cast
s390/hypfs: remove unused info_blk_hdr__pcpus() function
s390/mm: remove unused get_page_state() function
s390/kprobes: define insn cache ops within private header file
s390/3270: make raw3270_state_final() depend on CONFIG_TN3270_CONSOLE
s390/sclp: use kstrobool() to parse sclp_con_drop parameter
s390/sclp: convert to use sysfs_emit()
s390/sclp: allow to change sclp_console_drop during runtime
s390/appldata: remove power management callbacks
s390/checksum: support GENERIC_CSUM, enable it for KASAN
s390/vx: add vx-insn.h wrapper include file
s390/nmi: use vector instruction macros instead of byte patterns
s390/nmi: rework register validation handling
s390/sclp: keep sclp_early_sccb
s390/sclp: introduce sclp_emergency_printk()
s390/nmi: print machine check interruption code before stopping system
s390/nmi: move storage error checking back to C, enter with DAT on
s390/nmi: get rid of private slab cache

Sven Schnelle (3):
s390/ipl: add eckd support
s390/ipl: add eckd dump support
s390/ipl: use octal values instead of S_* macros

Thomas Gleixner (1):
s390/pci: Use irq_data_get_msi_desc()

Thomas Richter (6):
s390/con3215: Simplify console write operation
s390/con3215: Drop console data printout when buffer full
s390/con3215: Fix white space errors
s390/pai: move enum definition to header file
s390/pai: rework pai_crypto mapped buffer reference count
s390/pai: rename structure member users to active_events

.../admin-guide/kernel-parameters.txt | 11 +
arch/s390/Kconfig | 7 +
arch/s390/appldata/appldata_base.c | 113 +--
arch/s390/boot/ipl_parm.c | 9 +
arch/s390/hypfs/hypfs_diag.c | 8 -
arch/s390/include/asm/bugs.h | 21 -
arch/s390/include/asm/checksum.h | 7 +
arch/s390/include/asm/ipl.h | 11 +
arch/s390/include/asm/pai.h | 6 +
arch/s390/include/asm/sclp.h | 2 +
arch/s390/include/asm/serial.h | 7 -
arch/s390/include/asm/shmparam.h | 12 -
arch/s390/include/asm/vga.h | 7 -
arch/s390/include/asm/vx-insn-asm.h | 681 ++++++++++++++++++
arch/s390/include/asm/vx-insn.h | 671 +----------------
arch/s390/include/uapi/asm/ipl.h | 29 +
arch/s390/kernel/debug.c | 7 +-
arch/s390/kernel/entry.S | 34 +-
arch/s390/kernel/fpu.c | 3 +-
arch/s390/kernel/ipl.c | 403 ++++++++++-
arch/s390/kernel/kprobes.c | 3 +-
arch/s390/kernel/kprobes.h | 9 +
arch/s390/kernel/nmi.c | 181 +++--
arch/s390/kernel/perf_pai_crypto.c | 48 +-
arch/s390/kernel/perf_pai_ext.c | 12 +-
arch/s390/kernel/setup.c | 3 +-
arch/s390/mm/init.c | 39 +-
arch/s390/mm/page-states.c | 11 -
arch/s390/pci/pci_irq.c | 2 +-
drivers/s390/char/con3215.c | 275 ++++---
drivers/s390/char/raw3270.c | 12 +-
drivers/s390/char/sclp.c | 25 +-
drivers/s390/char/sclp.h | 2 +-
drivers/s390/char/sclp_early.c | 4 +-
drivers/s390/char/sclp_early_core.c | 26 +-
drivers/s390/char/zcore.c | 4 +
drivers/s390/cio/chsc_sch.c | 3 +-
drivers/s390/cio/cio.c | 14 +-
drivers/s390/cio/device.c | 2 +-
drivers/s390/cio/device_fsm.c | 13 +-
drivers/s390/cio/device_id.c | 2 +-
drivers/s390/cio/device_pgid.c | 11 +-
drivers/s390/cio/device_status.c | 3 +-
drivers/s390/cio/eadm_sch.c | 9 +-
drivers/s390/cio/fcx.c | 23 +-
drivers/s390/cio/itcw.c | 3 +-
drivers/s390/cio/vfio_ccw_cp.c | 4 +-
drivers/s390/cio/vfio_ccw_fsm.c | 2 +-
lib/raid6/s390vx.uc | 3 +-
49 files changed, 1598 insertions(+), 1199 deletions(-)
delete mode 100644 arch/s390/include/asm/bugs.h
delete mode 100644 arch/s390/include/asm/serial.h
delete mode 100644 arch/s390/include/asm/shmparam.h
delete mode 100644 arch/s390/include/asm/vga.h
create mode 100644 arch/s390/include/asm/vx-insn-asm.h
create mode 100644 arch/s390/kernel/kprobes.h