s390 updates for 6.3 merge window

- Large cleanup of the con3270/tty3270 driver. Among others this fixes:
  * Background Color Support
  * ASCII Line Character Support
  * VT100 Support
  * Geometries other than 80x24

- Cleanup and improve cmpxchg() code. Also add cmpxchg_user_key() to
  uaccess functions, which will be used by KVM to access KVM guest memory
  with a specific storage key.

- Add support for user space events counting to CPUMF.

- Cleanup the vfio/ccw code, which also allows now to properly support 2K
  Format-2 IDALs.

- Move kernel page table allocation and initialization to decompressor,
  which finally allows to enter the kernel with dynamic address translation
  enabled. This in turn allows to get rid of code with special handling in
  the kernel, which has to distinguish if DAT is on or off.

- Replace kretprobe with rethook.

- Various improvements to vfio/ap queue resets:
  * Use TAPQ to verify completion of a reset in progress rather than
    multiple invocations of ZAPQ.
  * Check TAPQ response codes when verifying successful completion of ZAPQ.
  * Fix erroneous handling of some error response codes.
  * Increase the maximum amount of time to wait for successful completion
    of ZAPQ.

- Rework system call wrappers to get rid of alias functions, which were
  only left on s390.

- Cleanup diag288_wdt watchdog driver. It has been agreed on with Guenter
  Roeck that this goes upstream via the s390 tree.

- Add missing loadparm parameter handling for list-directed ECKD ipl/reipl.

- Various improvements to memory detection code.

- Remove arch_cpu_idle_time() since the current implementation is broken,
  and allows user space observable accounted idle times which can
  temporarily decrease.

- Add Reset DAT-Protection support: (only) allow to change PTEs from RO to
  RW with a new RDP instruction. Unlike the currently used IPTE
  instruction, this does not necessarily guarantee that TLBs of all CPUs
  are synchronously flushed; and that remote CPUs can see spurious
  protection faults. The overall improvement for not requiring an all CPU
  synchronization, like it is required with IPTE, should be beneficial.

- Fix KFENCE page fault reporting.

- Smaller cleanups and improvement all over the place.
s390/irq,idle: simplify idle check

Use the per-cpu CIF_ENABLED_WAIT flag to decide if an interrupt
occurred while a cpu was idle, instead of checking two conditions
within the old psw.

Also move clearing of the CIF_ENABLED_WAIT bit to the early interrupt
handler, which in turn makes arch_vcpu_is_preempted() also a bit more
precise, since the flag is now cleared before interrupt handlers have
been called.

Reviewed-by: Sven Schnelle <svens@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
3 files changed