History

Merge tag 'kvm-s390-next-20150318' of git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux into queue

KVM: s390: Features and fixes for 4.1 (kvm/next) 1. Fixes 2. Implement access register mode in KVM 3. Provide a userspace post handler for the STSI instruction 4. Provide an interface for compliant memory accesses 5. Provide an interface for getting/setting the guest storage key 6. Fixup for the vector facility patches: do not announce the vector facility in the guest for old QEMUs. 1-5 were initially shown as RFC in http://www.spinics.net/lists/kvm/msg114720.html some small review changes - added some ACKs - have the AR mode patches first - get rid of unnecessary AR_INVAL define - typos and language 6. two new patches The two new patches fixup the vector support patches that were introduced in the last pull request for QEMU versions that dont know about vector support and guests that do. (We announce the facility bit, but dont enable the facility so vector aware guests will crash on vector instructions).

Marcelo Tosatti committed 11 years ago

Commit bbf4aef2 parents 0a4e6be 18280d811 files · +752 −124Browse files

Showing the changes to include/uapi (1 of 11 files). Show all

Unified · Split

include/uapi/linux/kvm.h+46−0
@@ -147,6 +147,16 @@ struct kvm_pit_config { · 146 unmodified lines
147 147
148#define KVM_PIT_SPEAKER_DUMMY 1148#define KVM_PIT_SPEAKER_DUMMY 1
149 149
150struct kvm_s390_skeys {
151 __u64 start_gfn;
152 __u64 count;
153 __u64 skeydata_addr;
154 __u32 flags;
155 __u32 reserved[9];
156};
157#define KVM_S390_GET_SKEYS_NONE 1
158#define KVM_S390_SKEYS_MAX 1048576
159
150#define KVM_EXIT_UNKNOWN 0160#define KVM_EXIT_UNKNOWN 0
151#define KVM_EXIT_EXCEPTION 1161#define KVM_EXIT_EXCEPTION 1
152#define KVM_EXIT_IO 2162#define KVM_EXIT_IO 2
@@ -172,6 +182,7 @@ struct kvm_pit_config { · 19 unmodified lines
172#define KVM_EXIT_S390_TSCH 22182#define KVM_EXIT_S390_TSCH 22
173#define KVM_EXIT_EPR 23183#define KVM_EXIT_EPR 23
174#define KVM_EXIT_SYSTEM_EVENT 24184#define KVM_EXIT_SYSTEM_EVENT 24
185#define KVM_EXIT_S390_STSI 25
175 186
176/* For KVM_EXIT_INTERNAL_ERROR */187/* For KVM_EXIT_INTERNAL_ERROR */
177/* Emulate instruction failed. */188/* Emulate instruction failed. */
@@ -309,6 +320,15 @@ struct kvm_run { · 131 unmodified lines
309 __u32 type;320 __u32 type;
310 __u64 flags;321 __u64 flags;
311 } system_event;322 } system_event;
323 /* KVM_EXIT_S390_STSI */
324 struct {
325 __u64 addr;
326 __u8 ar;
327 __u8 reserved;
328 __u8 fc;
329 __u8 sel1;
330 __u16 sel2;
331 } s390_stsi;
312 /* Fix the size of the union. */332 /* Fix the size of the union. */
313 char padding[256];333 char padding[256];
314 };334 };
@@ -365,6 +385,24 @@ struct kvm_translation { · 50 unmodified lines
365 __u8 pad[5];385 __u8 pad[5];
366};386};
367 387
388/* for KVM_S390_MEM_OP */
389struct kvm_s390_mem_op {
390 /* in */
391 __u64 gaddr; /* the guest address */
392 __u64 flags; /* flags */
393 __u32 size; /* amount of bytes */
394 __u32 op; /* type of operation */
395 __u64 buf; /* buffer in userspace */
396 __u8 ar; /* the access register number */
397 __u8 reserved[31]; /* should be set to 0 */
398};
399/* types for kvm_s390_mem_op->op */
400#define KVM_S390_MEMOP_LOGICAL_READ 0
401#define KVM_S390_MEMOP_LOGICAL_WRITE 1
402/* flags for kvm_s390_mem_op->flags */
403#define KVM_S390_MEMOP_F_CHECK_ONLY (1ULL << 0)
404#define KVM_S390_MEMOP_F_INJECT_EXCEPTION (1ULL << 1)
405
368/* for KVM_INTERRUPT */406/* for KVM_INTERRUPT */
369struct kvm_interrupt {407struct kvm_interrupt {
370 /* in */408 /* in */
@@ -761,6 +799,9 @@ struct kvm_ppc_smmu_info { · 390 unmodified lines
761#define KVM_CAP_CHECK_EXTENSION_VM 105799#define KVM_CAP_CHECK_EXTENSION_VM 105
762#define KVM_CAP_S390_USER_SIGP 106800#define KVM_CAP_S390_USER_SIGP 106
763#define KVM_CAP_S390_VECTOR_REGISTERS 107801#define KVM_CAP_S390_VECTOR_REGISTERS 107
802#define KVM_CAP_S390_MEM_OP 108
803#define KVM_CAP_S390_USER_STSI 109
804#define KVM_CAP_S390_SKEYS 110
764 805
765#ifdef KVM_CAP_IRQ_ROUTING806#ifdef KVM_CAP_IRQ_ROUTING
766 807
@@ -1136,6 +1177,11 @@ struct kvm_s390_ucas_mapping { · 369 unmodified lines
1136#define KVM_ARM_VCPU_INIT _IOW(KVMIO, 0xae, struct kvm_vcpu_init)1177#define KVM_ARM_VCPU_INIT _IOW(KVMIO, 0xae, struct kvm_vcpu_init)
1137#define KVM_ARM_PREFERRED_TARGET _IOR(KVMIO, 0xaf, struct kvm_vcpu_init)1178#define KVM_ARM_PREFERRED_TARGET _IOR(KVMIO, 0xaf, struct kvm_vcpu_init)
1138#define KVM_GET_REG_LIST _IOWR(KVMIO, 0xb0, struct kvm_reg_list)1179#define KVM_GET_REG_LIST _IOWR(KVMIO, 0xb0, struct kvm_reg_list)
1180/* Available with KVM_CAP_S390_MEM_OP */
1181#define KVM_S390_MEM_OP _IOW(KVMIO, 0xb1, struct kvm_s390_mem_op)
1182/* Available with KVM_CAP_S390_SKEYS */
1183#define KVM_S390_GET_SKEYS _IOW(KVMIO, 0xb2, struct kvm_s390_skeys)
1184#define KVM_S390_SET_SKEYS _IOW(KVMIO, 0xb3, struct kvm_s390_skeys)
1139 1185
1140#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)1186#define KVM_DEV_ASSIGN_ENABLE_IOMMU (1 << 0)
1141#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)1187#define KVM_DEV_ASSIGN_PCI_2_3 (1 << 1)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t