diff options
author | Carsten Otte <carsteno@de.ibm.com> | 2009-11-19 08:21:16 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2009-12-03 02:32:25 -0500 |
commit | d7b0b5eb3000c6fb902f08c619fcd673a23d8fab (patch) | |
tree | 4c7aa92657435c687f98383aaea5ce15ee9fba9c /include/linux/kvm.h | |
parent | 3cfc3092f40bc37c57ba556cfd8de4218f2135ab (diff) |
KVM: s390: Make psw available on all exits, not just a subset
This patch moves s390 processor status word into the base kvm_run
struct and keeps it up-to date on all userspace exits.
The userspace ABI is broken by this, however there are no applications
in the wild using this. A capability check is provided so users can
verify the updated API exists.
Cc: stable@kernel.org
Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'include/linux/kvm.h')
-rw-r--r-- | include/linux/kvm.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/include/linux/kvm.h b/include/linux/kvm.h index 92045a92d714..2d241da07236 100644 --- a/include/linux/kvm.h +++ b/include/linux/kvm.h | |||
@@ -181,6 +181,11 @@ struct kvm_run { | |||
181 | __u64 cr8; | 181 | __u64 cr8; |
182 | __u64 apic_base; | 182 | __u64 apic_base; |
183 | 183 | ||
184 | #ifdef __KVM_S390 | ||
185 | /* the processor status word for s390 */ | ||
186 | __u64 psw_mask; /* psw upper half */ | ||
187 | __u64 psw_addr; /* psw lower half */ | ||
188 | #endif | ||
184 | union { | 189 | union { |
185 | /* KVM_EXIT_UNKNOWN */ | 190 | /* KVM_EXIT_UNKNOWN */ |
186 | struct { | 191 | struct { |
@@ -232,8 +237,6 @@ struct kvm_run { | |||
232 | /* KVM_EXIT_S390_SIEIC */ | 237 | /* KVM_EXIT_S390_SIEIC */ |
233 | struct { | 238 | struct { |
234 | __u8 icptcode; | 239 | __u8 icptcode; |
235 | __u64 mask; /* psw upper half */ | ||
236 | __u64 addr; /* psw lower half */ | ||
237 | __u16 ipa; | 240 | __u16 ipa; |
238 | __u32 ipb; | 241 | __u32 ipb; |
239 | } s390_sieic; | 242 | } s390_sieic; |
@@ -492,6 +495,7 @@ struct kvm_ioeventfd { | |||
492 | #ifdef __KVM_HAVE_VCPU_EVENTS | 495 | #ifdef __KVM_HAVE_VCPU_EVENTS |
493 | #define KVM_CAP_VCPU_EVENTS 41 | 496 | #define KVM_CAP_VCPU_EVENTS 41 |
494 | #endif | 497 | #endif |
498 | #define KVM_CAP_S390_PSW 42 | ||
495 | 499 | ||
496 | #ifdef KVM_CAP_IRQ_ROUTING | 500 | #ifdef KVM_CAP_IRQ_ROUTING |
497 | 501 | ||