s390 updates for 6.5 merge window part 2

- Fix virtual vs physical address confusion in vmem_add_range()
  and vmem_remove_range() functions.

- Include <linux/io.h> instead of <asm/io.h> and <asm-generic/io.h>
  throughout s390 code.

- Make all PSW related defines also available for assembler files.
  Remove PSW_DEFAULT_KEY define from uapi for that.

- When adding an undefined symbol the build still succeeds, but
  userspace crashes trying to execute VDSO, because the symbol
  is not resolved. Add undefined symbols check to prevent that.

- Use kvmalloc_array() instead of kzalloc() for allocaton of 256k
  memory when executing s390 crypto adapter IOCTL.

- Add -fPIE flag to prevent decompressor misaligned symbol build
  error with clang.

- Use .balign instead of .align everywhere. This is a no-op for s390,
  but with this there no mix in using .align and .balign anymore.

- Filter out -mno-pic-data-is-text-relative flag when compiling
  kernel to prevent VDSO build error.

- Rework entering of DAT-on mode on CPU restart to use PSW_KERNEL_BITS
  mask directly.

- Do not retry administrative requests to some s390 crypto cards,
  since the firmware assumes replay attacks.

- Remove most of the debug code, which is build in when kernel config
  option CONFIG_ZCRYPT_DEBUG is enabled.

- Remove CONFIG_ZCRYPT_MULTIDEVNODES kernel config option and switch
  off the multiple devices support for the s390 zcrypt device driver.

- With the conversion to generic entry machine checks are accounted
  to the current context instead of irq time. As result, the STCKF
  instruction at the beginning of the machine check handler and the
  lowcore member are no longer required, therefore remove it.

- Fix various typos found with codespell.

- Minor cleanups to CPU-measurement Counter and Sampling Facilities code.

- Revert patch that removes VMEM_MAX_PHYS macro, since it causes
  a regression.
Revert "s390/mm: get rid of VMEM_MAX_PHYS macro"

This reverts commit 456be42aa713e7f83b467db66ceae779431c7d9d.

The assumption VMEM_MAX_PHYS should match ident_map_size
is wrong. At least discontiguous saved segments (DCSS)
could be loaded at addresses beyond ident_map_size and
dcssblk device driver might fail as result.

Reported-by: Gerald Schaefer <gerald.schaefer@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
5 files changed