Merge tag 's390-5.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Sun, 7 Aug 2022 00:05:21 +0000 (17:05 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sun, 7 Aug 2022 00:05:21 +0000 (17:05 -0700)
Pull s390 updates from Alexander Gordeev:

 - Rework copy_oldmem_page() callback to take an iov_iter.

   This includes a few prerequisite updates and fixes to the oldmem
   reading code.

 - Rework cpufeature implementation to allow for various CPU feature
   indications, which is not only limited to hardware capabilities, but
   also allows CPU facilities.

 - Use the cpufeature rework to autoload Ultravisor module when CPU
   facility 158 is available.

 - Add ELF note type for encrypted CPU state of a protected virtual CPU.
   The zgetdump tool from s390-tools package will decrypt the CPU state
   using a Customer Communication Key and overwrite respective notes to
   make the data accessible for crash and other debugging tools.

 - Use vzalloc() instead of vmalloc() + memset() in ChaCha20 crypto
   test.

 - Fix incorrect recovery of kretprobe modified return address in
   stacktrace.

 - Switch the NMI handler to use generic irqentry_nmi_enter() and
   irqentry_nmi_exit() helper functions.

 - Rework the cryptographic Adjunct Processors (AP) pass-through design
   to support dynamic changes to the AP matrix of a running guest as
   well as to implement more of the AP architecture.

 - Minor boot code cleanups.

 - Grammar and typo fixes to hmcdrv and tape drivers.

* tag 's390-5.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (46 commits)
  Revert "s390/smp: enforce lowcore protection on CPU restart"
  Revert "s390/smp: rework absolute lowcore access"
  Revert "s390/smp,ptdump: add absolute lowcore markers"
  s390/unwind: fix fgraph return address recovery
  s390/nmi: use irqentry_nmi_enter()/irqentry_nmi_exit()
  s390: add ELF note type for encrypted CPU state of a PV VCPU
  s390/smp,ptdump: add absolute lowcore markers
  s390/smp: rework absolute lowcore access
  s390/setup: rearrange absolute lowcore initialization
  s390/boot: cleanup adjust_to_uv_max() function
  s390/smp: enforce lowcore protection on CPU restart
  s390/tape: fix comment typo
  s390/hmcdrv: fix Kconfig "its" grammar
  s390/docs: fix warnings for vfio_ap driver doc
  s390/docs: fix warnings for vfio_ap driver lock usage doc
  s390/crash: support multi-segment iterators
  s390/crash: use static swap buffer for copy_to_user_real()
  s390/crash: move copy_to_user_real() to crash_dump.c
  s390/zcore: fix race when reading from hardware system area
  s390/crash: fix incorrect number of bytes to copy to user space
  ...

1  2 
MAINTAINERS
arch/s390/boot/uv.c
arch/s390/include/asm/mmu.h
arch/s390/include/asm/sclp.h
arch/s390/include/asm/uaccess.h
arch/s390/kernel/setup.c
drivers/char/hw_random/s390-trng.c
drivers/s390/crypto/ap_bus.c
drivers/s390/crypto/vfio_ap_ops.c
drivers/s390/crypto/vfio_ap_private.h

diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -81,6 -97,9 +97,7 @@@ struct ap_queue_table 
   * @node:     allows the ap_matrix_mdev struct to be added to a list
   * @matrix:   the adapters, usage domains and control domains assigned to the
   *            mediated matrix device.
 - * @iommu_notifier: notifier block used for specifying callback function for
 - *                handling the VFIO_IOMMU_NOTIFY_DMA_UNMAP even
+  * @shadow_apcb:    the shadow copy of the APCB field of the KVM guest's CRYCB
   * @kvm:      the struct holding guest's state
   * @pqap_hook:        the function pointer to the interception handler for the
   *            PQAP(AQIC) instruction.
@@@ -90,6 -114,8 +112,7 @@@ struct ap_matrix_mdev 
        struct vfio_device vdev;
        struct list_head node;
        struct ap_matrix matrix;
 -      struct notifier_block iommu_notifier;
+       struct ap_matrix shadow_apcb;
        struct kvm *kvm;
        crypto_hook pqap_hook;
        struct mdev_device *mdev;
   * struct vfio_ap_queue - contains the data associated with a queue bound to the
   *                      vfio_ap device driver
   * @matrix_mdev: the matrix mediated device
 - * @saved_pfn: the guest PFN pinned for the guest
 + * @saved_iova: the notification indicator byte (nib) address
   * @apqn: the APQN of the AP queue device
   * @saved_isc: the guest ISC registered with the GIB interface
+  * @mdev_qnode: allows the vfio_ap_queue struct to be added to a hashtable
+  * @reset_rc: the status response code from the last reset of the queue
   */
  struct vfio_ap_queue {
        struct ap_matrix_mdev *matrix_mdev;