Pull s390 updates from Martin Schwidefsky: - three merges for KVM/s390 with changes for vfio-ccw and cpacf. The patches are included in the KVM tree as well, let git sort it out. - add the new 'trng' random number generator - provide the secure key verification API for the pkey interface - introduce the z13 cpu counters to perf - add a new system call to set up the guarded storage facility - simplify TASK_SIZE and arch_get_unmapped_area - export the raw STSI data related to CPU topology to user space - ... and the usual churn of bug-fixes and cleanups. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (74 commits) s390/crypt: use the correct module alias for paes_s390. s390/cpacf: Introduce kma instruction s390/cpacf: query instructions use unique parameters for compatibility with KMA s390/trng: Introduce s390 TRNG device driver. s390/crypto: Provide s390 specific arch random functionality. s390/crypto: Add new subfunctions to the cpacf PRNO function. s390/crypto: Renaming PPNO to PRNO. s390/pageattr: avoid unnecessary page table splitting s390/mm: simplify arch_get_unmapped_area[_topdown] s390/mm: make TASK_SIZE independent from the number of page table levels s390/gs: add regset for the guarded storage broadcast control block s390/kvm: Add use_cmma field to mm_context_t s390/kvm: Add PGSTE manipulation functions vfio: ccw: improve error handling for vfio_ccw_mdev_remove vfio: ccw: remove unnecessary NULL checks of a pointer s390/spinlock: remove compare and delay instruction s390/spinlock: use atomic primitives for spinlocks s390/cpumf: simplify detection of guest samples s390/pci: remove forward declaration s390/pci: increase the PCI_NR_FUNCTIONS default ...
Showing the changes to include/uapi/linux (3 of 115 files). Show all
Unified · Split
| @@ -409,6 +409,8 @@ typedef struct elf64_shdr { · 408 unmodified lines | |||
| 409 | #define NT_S390_TDB 0x308 /* s390 transaction diagnostic block */ | 409 | #define NT_S390_TDB 0x308 /* s390 transaction diagnostic block */ |
| 410 | #define NT_S390_VXRS_LOW 0x309 /* s390 vector registers 0-15 upper half */ | 410 | #define NT_S390_VXRS_LOW 0x309 /* s390 vector registers 0-15 upper half */ |
| 411 | #define NT_S390_VXRS_HIGH 0x30a /* s390 vector registers 16-31 */ | 411 | #define NT_S390_VXRS_HIGH 0x30a /* s390 vector registers 16-31 */ |
| 412 | #define NT_S390_GS_CB 0x30b /* s390 guarded storage registers */ | ||
| 413 | #define NT_S390_GS_BC 0x30c /* s390 guarded storage broadcast control block */ | ||
| 412 | #define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */ | 414 | #define NT_ARM_VFP 0x400 /* ARM VFP/NEON registers */ |
| 413 | #define NT_ARM_TLS 0x401 /* ARM TLS register */ | 415 | #define NT_ARM_TLS 0x401 /* ARM TLS register */ |
| 414 | #define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */ | 416 | #define NT_ARM_HW_BREAK 0x402 /* ARM hardware breakpoint registers */ |
| @@ -198,6 +198,7 @@ struct vfio_device_info { · 197 unmodified lines | |||
| 198 | #define VFIO_DEVICE_FLAGS_PCI (1 << 1) /* vfio-pci device */ | 198 | #define VFIO_DEVICE_FLAGS_PCI (1 << 1) /* vfio-pci device */ |
| 199 | #define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */ | 199 | #define VFIO_DEVICE_FLAGS_PLATFORM (1 << 2) /* vfio-platform device */ |
| 200 | #define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */ | 200 | #define VFIO_DEVICE_FLAGS_AMBA (1 << 3) /* vfio-amba device */ |
| 201 | #define VFIO_DEVICE_FLAGS_CCW (1 << 4) /* vfio-ccw device */ | ||
| 201 | __u32 num_regions; /* Max region index + 1 */ | 202 | __u32 num_regions; /* Max region index + 1 */ |
| 202 | __u32 num_irqs; /* Max IRQ index + 1 */ | 203 | __u32 num_irqs; /* Max IRQ index + 1 */ |
| 203 | }; | 204 | }; |
| @@ -212,6 +213,7 @@ struct vfio_device_info { · 8 unmodified lines | |||
| 212 | #define VFIO_DEVICE_API_PCI_STRING "vfio-pci" | 213 | #define VFIO_DEVICE_API_PCI_STRING "vfio-pci" |
| 213 | #define VFIO_DEVICE_API_PLATFORM_STRING "vfio-platform" | 214 | #define VFIO_DEVICE_API_PLATFORM_STRING "vfio-platform" |
| 214 | #define VFIO_DEVICE_API_AMBA_STRING "vfio-amba" | 215 | #define VFIO_DEVICE_API_AMBA_STRING "vfio-amba" |
| 216 | #define VFIO_DEVICE_API_CCW_STRING "vfio-ccw" | ||
| 215 | 217 | ||
| 216 | /** | 218 | /** |
| 217 | * VFIO_DEVICE_GET_REGION_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 8, | 219 | * VFIO_DEVICE_GET_REGION_INFO - _IOWR(VFIO_TYPE, VFIO_BASE + 8, |
| @@ -446,6 +448,22 @@ enum { · 228 unmodified lines | |||
| 446 | VFIO_PCI_NUM_IRQS | 448 | VFIO_PCI_NUM_IRQS |
| 447 | }; | 449 | }; |
| 448 | 450 | ||
| 451 | /* | ||
| 452 | * The vfio-ccw bus driver makes use of the following fixed region and | ||
| 453 | * IRQ index mapping. Unimplemented regions return a size of zero. | ||
| 454 | * Unimplemented IRQ types return a count of zero. | ||
| 455 | */ | ||
| 456 | |||
| 457 | enum { | ||
| 458 | VFIO_CCW_CONFIG_REGION_INDEX, | ||
| 459 | VFIO_CCW_NUM_REGIONS | ||
| 460 | }; | ||
| 461 | |||
| 462 | enum { | ||
| 463 | VFIO_CCW_IO_IRQ_INDEX, | ||
| 464 | VFIO_CCW_NUM_IRQS | ||
| 465 | }; | ||
| 466 | |||
| 449 | /** | 467 | /** |
| 450 | * VFIO_DEVICE_GET_PCI_HOT_RESET_INFO - _IORW(VFIO_TYPE, VFIO_BASE + 12, | 468 | * VFIO_DEVICE_GET_PCI_HOT_RESET_INFO - _IORW(VFIO_TYPE, VFIO_BASE + 12, |
| 451 | * struct vfio_pci_hot_reset_info) | 469 | * struct vfio_pci_hot_reset_info) |
| @@ -0,0 +1,24 @@ | |||
| 1 | /* | ||
| 2 | * Interfaces for vfio-ccw | ||
| 3 | * | ||
| 4 | * Copyright IBM Corp. 2017 | ||
| 5 | * | ||
| 6 | * Author(s): Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> | ||
| 7 | */ | ||
| 8 | |||
| 9 | #ifndef _VFIO_CCW_H_ | ||
| 10 | #define _VFIO_CCW_H_ | ||
| 11 | |||
| 12 | #include <linux/types.h> | ||
| 13 | |||
| 14 | struct ccw_io_region { | ||
| 15 | #define ORB_AREA_SIZE 12 | ||
| 16 | __u8 orb_area[ORB_AREA_SIZE]; | ||
| 17 | #define SCSW_AREA_SIZE 12 | ||
| 18 | __u8 scsw_area[SCSW_AREA_SIZE]; | ||
| 19 | #define IRB_AREA_SIZE 96 | ||
| 20 | __u8 irb_area[IRB_AREA_SIZE]; | ||
| 21 | __u32 ret_code; | ||
| 22 | } __packed; | ||
| 23 | |||
| 24 | #endif | ||