diff options
Diffstat (limited to 'arch/powerpc/include')
-rw-r--r-- | arch/powerpc/include/asm/kvm_e500.h | 8 | ||||
-rw-r--r-- | arch/powerpc/include/asm/kvm_host.h | 6 | ||||
-rw-r--r-- | arch/powerpc/include/asm/kvm_para.h | 31 |
3 files changed, 29 insertions, 16 deletions
diff --git a/arch/powerpc/include/asm/kvm_e500.h b/arch/powerpc/include/asm/kvm_e500.h index bc17441535f2..8cd50a514271 100644 --- a/arch/powerpc/include/asm/kvm_e500.h +++ b/arch/powerpc/include/asm/kvm_e500.h | |||
@@ -71,14 +71,6 @@ struct kvmppc_vcpu_e500 { | |||
71 | u32 pid[E500_PID_NUM]; | 71 | u32 pid[E500_PID_NUM]; |
72 | u32 svr; | 72 | u32 svr; |
73 | 73 | ||
74 | u32 mas0; | ||
75 | u32 mas1; | ||
76 | u32 mas2; | ||
77 | u64 mas7_3; | ||
78 | u32 mas4; | ||
79 | u32 mas5; | ||
80 | u32 mas6; | ||
81 | |||
82 | /* vcpu id table */ | 74 | /* vcpu id table */ |
83 | struct vcpu_id_table *idt; | 75 | struct vcpu_id_table *idt; |
84 | 76 | ||
diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h index bf8af5d5d5dc..bfd0c9912da5 100644 --- a/arch/powerpc/include/asm/kvm_host.h +++ b/arch/powerpc/include/asm/kvm_host.h | |||
@@ -318,10 +318,6 @@ struct kvm_vcpu_arch { | |||
318 | u32 vrsave; /* also USPRG0 */ | 318 | u32 vrsave; /* also USPRG0 */ |
319 | u32 mmucr; | 319 | u32 mmucr; |
320 | ulong shadow_msr; | 320 | ulong shadow_msr; |
321 | ulong sprg4; | ||
322 | ulong sprg5; | ||
323 | ulong sprg6; | ||
324 | ulong sprg7; | ||
325 | ulong csrr0; | 321 | ulong csrr0; |
326 | ulong csrr1; | 322 | ulong csrr1; |
327 | ulong dsrr0; | 323 | ulong dsrr0; |
@@ -329,7 +325,6 @@ struct kvm_vcpu_arch { | |||
329 | ulong mcsrr0; | 325 | ulong mcsrr0; |
330 | ulong mcsrr1; | 326 | ulong mcsrr1; |
331 | ulong mcsr; | 327 | ulong mcsr; |
332 | ulong esr; | ||
333 | u32 dec; | 328 | u32 dec; |
334 | u32 decar; | 329 | u32 decar; |
335 | u32 tbl; | 330 | u32 tbl; |
@@ -338,7 +333,6 @@ struct kvm_vcpu_arch { | |||
338 | u32 tsr; | 333 | u32 tsr; |
339 | u32 ivor[64]; | 334 | u32 ivor[64]; |
340 | ulong ivpr; | 335 | ulong ivpr; |
341 | u32 pir; | ||
342 | u32 pvr; | 336 | u32 pvr; |
343 | 337 | ||
344 | u32 shadow_pid; | 338 | u32 shadow_pid; |
diff --git a/arch/powerpc/include/asm/kvm_para.h b/arch/powerpc/include/asm/kvm_para.h index 50533f9adf40..ece70fb36513 100644 --- a/arch/powerpc/include/asm/kvm_para.h +++ b/arch/powerpc/include/asm/kvm_para.h | |||
@@ -33,11 +33,35 @@ struct kvm_vcpu_arch_shared { | |||
33 | __u64 sprg3; | 33 | __u64 sprg3; |
34 | __u64 srr0; | 34 | __u64 srr0; |
35 | __u64 srr1; | 35 | __u64 srr1; |
36 | __u64 dar; | 36 | __u64 dar; /* dear on BookE */ |
37 | __u64 msr; | 37 | __u64 msr; |
38 | __u32 dsisr; | 38 | __u32 dsisr; |
39 | __u32 int_pending; /* Tells the guest if we have an interrupt */ | 39 | __u32 int_pending; /* Tells the guest if we have an interrupt */ |
40 | __u32 sr[16]; | 40 | __u32 sr[16]; |
41 | __u32 mas0; | ||
42 | __u32 mas1; | ||
43 | __u64 mas7_3; | ||
44 | __u64 mas2; | ||
45 | __u32 mas4; | ||
46 | __u32 mas6; | ||
47 | __u32 esr; | ||
48 | __u32 pir; | ||
49 | |||
50 | /* | ||
51 | * SPRG4-7 are user-readable, so we can only keep these consistent | ||
52 | * between the shared area and the real registers when there's an | ||
53 | * intervening exit to KVM. This also applies to SPRG3 on some | ||
54 | * chips. | ||
55 | * | ||
56 | * This suffices for access by guest userspace, since in PR-mode | ||
57 | * KVM, an exit must occur when changing the guest's MSR[PR]. | ||
58 | * If the guest kernel writes to SPRG3-7 via the shared area, it | ||
59 | * must also use the shared area for reading while in kernel space. | ||
60 | */ | ||
61 | __u64 sprg4; | ||
62 | __u64 sprg5; | ||
63 | __u64 sprg6; | ||
64 | __u64 sprg7; | ||
41 | }; | 65 | }; |
42 | 66 | ||
43 | #define KVM_SC_MAGIC_R0 0x4b564d21 /* "KVM!" */ | 67 | #define KVM_SC_MAGIC_R0 0x4b564d21 /* "KVM!" */ |
@@ -47,7 +71,10 @@ struct kvm_vcpu_arch_shared { | |||
47 | 71 | ||
48 | #define KVM_FEATURE_MAGIC_PAGE 1 | 72 | #define KVM_FEATURE_MAGIC_PAGE 1 |
49 | 73 | ||
50 | #define KVM_MAGIC_FEAT_SR (1 << 0) | 74 | #define KVM_MAGIC_FEAT_SR (1 << 0) |
75 | |||
76 | /* MASn, ESR, PIR, and high SPRGs */ | ||
77 | #define KVM_MAGIC_FEAT_MAS0_TO_SPRG7 (1 << 1) | ||
51 | 78 | ||
52 | #ifdef __KERNEL__ | 79 | #ifdef __KERNEL__ |
53 | 80 | ||