• Linus Torvalds's avatar
    Merge tag 's390-6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 6a466769
    Linus Torvalds authored
    Pull s390 updates from Alexander Gordeev:
    
     - Fix the style of protected key API driver source: use x-mas tree for
       all local variable declarations
    
     - Rework protected key API driver to not use the struct pkey_protkey
       and pkey_clrkey anymore. Both structures have a fixed size buffer,
       but with the support of ECC protected key these buffers are not big
       enough. Use dynamic buffers internally and transparently for
       userspace
    
     - Add support for a new 'non CCA clear key token' with ECC clear keys
       supported: ECC P256, ECC P384, ECC P521, ECC ED25519 and ECC ED448.
       This makes it possible to derive a protected key from the ECC clear
       key input via PKEY_KBLOB2PROTK3 ioctl, while currently the only way
       to derive is via PCKMO instruction
    
     - The s390 PMU of PAI crypto and extension 1 NNPA counters use atomic_t
       for reference counting. Replace this with the proper data type
       refcount_t
    
     - Select ARCH_SUPPORTS_INT128, but limit this to clang for now, since
       gcc generates inefficient code, which may lead to stack overflows
    
     - Replace one-element array with flexible-array member in struct
       vfio_ccw_parent and refactor the rest of the code accordingly. Also,
       prefer struct_size() over sizeof() open- coded versions
    
     - Introduce OS_INFO_FLAGS_ENTRY pointing to a flags field and
       OS_INFO_FLAG_REIPL_CLEAR flag that informs a dumper whether the
       system memory should be cleared or not once dumped
    
     - Fix a hang when a user attempts to remove a VFIO-AP mediated device
       attached to a guest: add VFIO_DEVICE_GET_IRQ_INFO and
       VFIO_DEVICE_SET_IRQS IOCTLs and wire up the VFIO bus driver callback
       to request a release of the device
    
     - Fix calculation for R_390_GOTENT relocations for modules
    
     - Allow any user space process with CAP_PERFMON capability read and
       display the CPU Measurement facility counter sets
    
     - Rework large statically-defined per-CPU cpu_cf_events data structure
       and replace it with dynamically allocated structures created when a
       perf_event_open() system call is invoked or /dev/hwctr device is
       accessed
    
    * tag 's390-6.5-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
      s390/cpum_cf: rework PER_CPU_DEFINE of struct cpu_cf_events
      s390/cpum_cf: open access to hwctr device for CAP_PERFMON privileged process
      s390/module: fix rela calculation for R_390_GOTENT
      s390/vfio-ap: wire in the vfio_device_ops request callback
      s390/vfio-ap: realize the VFIO_DEVICE_SET_IRQS ioctl
      s390/vfio-ap: realize the VFIO_DEVICE_GET_IRQ_INFO ioctl
      s390/pkey: add support for ecc clear key
      s390/pkey: do not use struct pkey_protkey
      s390/pkey: introduce reverse x-mas trees
      s390/zcore: conditionally clear memory on reipl
      s390/ipl: add REIPL_CLEAR flag to os_info
      vfio/ccw: use struct_size() helper
      vfio/ccw: replace one-element array with flexible-array member
      s390: select ARCH_SUPPORTS_INT128
      s390/pai_ext: replace atomic_t with refcount_t
      s390/pai_crypto: replace atomic_t with refcount_t
    6a466769
ipl.c 65.4 KB