diff options
-rw-r--r-- | Documentation/virtual/kvm/api.txt | 6 | ||||
-rw-r--r-- | arch/powerpc/include/asm/kvm_host.h | 4 | ||||
-rw-r--r-- | arch/powerpc/include/asm/kvm_ppc.h | 1 | ||||
-rw-r--r-- | arch/powerpc/kvm/booke.c | 5 | ||||
-rw-r--r-- | arch/powerpc/kvm/powerpc.c | 10 | ||||
-rw-r--r-- | arch/powerpc/kvm/timing.c | 1 | ||||
-rw-r--r-- | arch/powerpc/kvm/timing.h | 3 | ||||
-rw-r--r-- | include/uapi/linux/kvm.h | 4 |
8 files changed, 5 insertions, 29 deletions
diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index 8898caf8c090..a21ff2265c21 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt | |||
@@ -2613,8 +2613,8 @@ The 'data' member contains, in its first 'len' bytes, the value as it would | |||
2613 | appear if the VCPU performed a load or store of the appropriate width directly | 2613 | appear if the VCPU performed a load or store of the appropriate width directly |
2614 | to the byte array. | 2614 | to the byte array. |
2615 | 2615 | ||
2616 | NOTE: For KVM_EXIT_IO, KVM_EXIT_MMIO, KVM_EXIT_OSI, KVM_EXIT_DCR, | 2616 | NOTE: For KVM_EXIT_IO, KVM_EXIT_MMIO, KVM_EXIT_OSI KVM_EXIT_PAPR and |
2617 | KVM_EXIT_PAPR and KVM_EXIT_EPR the corresponding | 2617 | KVM_EXIT_EPR the corresponding |
2618 | operations are complete (and guest state is consistent) only after userspace | 2618 | operations are complete (and guest state is consistent) only after userspace |
2619 | has re-entered the kernel with KVM_RUN. The kernel side will first finish | 2619 | has re-entered the kernel with KVM_RUN. The kernel side will first finish |
2620 | incomplete operations and then check for pending signals. Userspace | 2620 | incomplete operations and then check for pending signals. Userspace |
@@ -2685,7 +2685,7 @@ Principles of Operation Book in the Chapter for Dynamic Address Translation | |||
2685 | __u8 is_write; | 2685 | __u8 is_write; |
2686 | } dcr; | 2686 | } dcr; |
2687 | 2687 | ||
2688 | powerpc specific. | 2688 | Deprecated - was used for 440 KVM. |
2689 | 2689 | ||
2690 | /* KVM_EXIT_OSI */ | 2690 | /* KVM_EXIT_OSI */ |
2691 | struct { | 2691 | struct { |
diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h index 66f5b5914e6c..98d9dd50d063 100644 --- a/arch/powerpc/include/asm/kvm_host.h +++ b/arch/powerpc/include/asm/kvm_host.h | |||
@@ -94,7 +94,6 @@ struct kvm_vm_stat { | |||
94 | struct kvm_vcpu_stat { | 94 | struct kvm_vcpu_stat { |
95 | u32 sum_exits; | 95 | u32 sum_exits; |
96 | u32 mmio_exits; | 96 | u32 mmio_exits; |
97 | u32 dcr_exits; | ||
98 | u32 signal_exits; | 97 | u32 signal_exits; |
99 | u32 light_exits; | 98 | u32 light_exits; |
100 | /* Account for special types of light exits: */ | 99 | /* Account for special types of light exits: */ |
@@ -126,7 +125,6 @@ struct kvm_vcpu_stat { | |||
126 | 125 | ||
127 | enum kvm_exit_types { | 126 | enum kvm_exit_types { |
128 | MMIO_EXITS, | 127 | MMIO_EXITS, |
129 | DCR_EXITS, | ||
130 | SIGNAL_EXITS, | 128 | SIGNAL_EXITS, |
131 | ITLB_REAL_MISS_EXITS, | 129 | ITLB_REAL_MISS_EXITS, |
132 | ITLB_VIRT_MISS_EXITS, | 130 | ITLB_VIRT_MISS_EXITS, |
@@ -601,8 +599,6 @@ struct kvm_vcpu_arch { | |||
601 | u8 io_gpr; /* GPR used as IO source/target */ | 599 | u8 io_gpr; /* GPR used as IO source/target */ |
602 | u8 mmio_is_bigendian; | 600 | u8 mmio_is_bigendian; |
603 | u8 mmio_sign_extend; | 601 | u8 mmio_sign_extend; |
604 | u8 dcr_needed; | ||
605 | u8 dcr_is_write; | ||
606 | u8 osi_needed; | 602 | u8 osi_needed; |
607 | u8 osi_enabled; | 603 | u8 osi_enabled; |
608 | u8 papr_enabled; | 604 | u8 papr_enabled; |
diff --git a/arch/powerpc/include/asm/kvm_ppc.h b/arch/powerpc/include/asm/kvm_ppc.h index cbee4538307f..8e36c1e2c631 100644 --- a/arch/powerpc/include/asm/kvm_ppc.h +++ b/arch/powerpc/include/asm/kvm_ppc.h | |||
@@ -41,7 +41,6 @@ | |||
41 | enum emulation_result { | 41 | enum emulation_result { |
42 | EMULATE_DONE, /* no further processing */ | 42 | EMULATE_DONE, /* no further processing */ |
43 | EMULATE_DO_MMIO, /* kvm_run filled with MMIO request */ | 43 | EMULATE_DO_MMIO, /* kvm_run filled with MMIO request */ |
44 | EMULATE_DO_DCR, /* kvm_run filled with DCR request */ | ||
45 | EMULATE_FAIL, /* can't emulate this instruction */ | 44 | EMULATE_FAIL, /* can't emulate this instruction */ |
46 | EMULATE_AGAIN, /* something went wrong. go again */ | 45 | EMULATE_AGAIN, /* something went wrong. go again */ |
47 | EMULATE_EXIT_USER, /* emulation requires exit to user-space */ | 46 | EMULATE_EXIT_USER, /* emulation requires exit to user-space */ |
diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c index f30948a17c03..b4c89fa6f109 100644 --- a/arch/powerpc/kvm/booke.c +++ b/arch/powerpc/kvm/booke.c | |||
@@ -51,7 +51,6 @@ unsigned long kvmppc_booke_handlers; | |||
51 | 51 | ||
52 | struct kvm_stats_debugfs_item debugfs_entries[] = { | 52 | struct kvm_stats_debugfs_item debugfs_entries[] = { |
53 | { "mmio", VCPU_STAT(mmio_exits) }, | 53 | { "mmio", VCPU_STAT(mmio_exits) }, |
54 | { "dcr", VCPU_STAT(dcr_exits) }, | ||
55 | { "sig", VCPU_STAT(signal_exits) }, | 54 | { "sig", VCPU_STAT(signal_exits) }, |
56 | { "itlb_r", VCPU_STAT(itlb_real_miss_exits) }, | 55 | { "itlb_r", VCPU_STAT(itlb_real_miss_exits) }, |
57 | { "itlb_v", VCPU_STAT(itlb_virt_miss_exits) }, | 56 | { "itlb_v", VCPU_STAT(itlb_virt_miss_exits) }, |
@@ -709,10 +708,6 @@ static int emulation_exit(struct kvm_run *run, struct kvm_vcpu *vcpu) | |||
709 | case EMULATE_AGAIN: | 708 | case EMULATE_AGAIN: |
710 | return RESUME_GUEST; | 709 | return RESUME_GUEST; |
711 | 710 | ||
712 | case EMULATE_DO_DCR: | ||
713 | run->exit_reason = KVM_EXIT_DCR; | ||
714 | return RESUME_HOST; | ||
715 | |||
716 | case EMULATE_FAIL: | 711 | case EMULATE_FAIL: |
717 | printk(KERN_CRIT "%s: emulation at %lx failed (%08x)\n", | 712 | printk(KERN_CRIT "%s: emulation at %lx failed (%08x)\n", |
718 | __func__, vcpu->arch.pc, vcpu->arch.last_inst); | 713 | __func__, vcpu->arch.pc, vcpu->arch.last_inst); |
diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c index c14ed15fd60b..288b4bb05cbd 100644 --- a/arch/powerpc/kvm/powerpc.c +++ b/arch/powerpc/kvm/powerpc.c | |||
@@ -743,12 +743,6 @@ void kvm_arch_vcpu_put(struct kvm_vcpu *vcpu) | |||
743 | #endif | 743 | #endif |
744 | } | 744 | } |
745 | 745 | ||
746 | static void kvmppc_complete_dcr_load(struct kvm_vcpu *vcpu, | ||
747 | struct kvm_run *run) | ||
748 | { | ||
749 | kvmppc_set_gpr(vcpu, vcpu->arch.io_gpr, run->dcr.data); | ||
750 | } | ||
751 | |||
752 | static void kvmppc_complete_mmio_load(struct kvm_vcpu *vcpu, | 746 | static void kvmppc_complete_mmio_load(struct kvm_vcpu *vcpu, |
753 | struct kvm_run *run) | 747 | struct kvm_run *run) |
754 | { | 748 | { |
@@ -945,10 +939,6 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run) | |||
945 | if (!vcpu->mmio_is_write) | 939 | if (!vcpu->mmio_is_write) |
946 | kvmppc_complete_mmio_load(vcpu, run); | 940 | kvmppc_complete_mmio_load(vcpu, run); |
947 | vcpu->mmio_needed = 0; | 941 | vcpu->mmio_needed = 0; |
948 | } else if (vcpu->arch.dcr_needed) { | ||
949 | if (!vcpu->arch.dcr_is_write) | ||
950 | kvmppc_complete_dcr_load(vcpu, run); | ||
951 | vcpu->arch.dcr_needed = 0; | ||
952 | } else if (vcpu->arch.osi_needed) { | 942 | } else if (vcpu->arch.osi_needed) { |
953 | u64 *gprs = run->osi.gprs; | 943 | u64 *gprs = run->osi.gprs; |
954 | int i; | 944 | int i; |
diff --git a/arch/powerpc/kvm/timing.c b/arch/powerpc/kvm/timing.c index 07b6110a4bb7..e44d2b2ea97e 100644 --- a/arch/powerpc/kvm/timing.c +++ b/arch/powerpc/kvm/timing.c | |||
@@ -110,7 +110,6 @@ void kvmppc_update_timing_stats(struct kvm_vcpu *vcpu) | |||
110 | 110 | ||
111 | static const char *kvm_exit_names[__NUMBER_OF_KVM_EXIT_TYPES] = { | 111 | static const char *kvm_exit_names[__NUMBER_OF_KVM_EXIT_TYPES] = { |
112 | [MMIO_EXITS] = "MMIO", | 112 | [MMIO_EXITS] = "MMIO", |
113 | [DCR_EXITS] = "DCR", | ||
114 | [SIGNAL_EXITS] = "SIGNAL", | 113 | [SIGNAL_EXITS] = "SIGNAL", |
115 | [ITLB_REAL_MISS_EXITS] = "ITLBREAL", | 114 | [ITLB_REAL_MISS_EXITS] = "ITLBREAL", |
116 | [ITLB_VIRT_MISS_EXITS] = "ITLBVIRT", | 115 | [ITLB_VIRT_MISS_EXITS] = "ITLBVIRT", |
diff --git a/arch/powerpc/kvm/timing.h b/arch/powerpc/kvm/timing.h index bf191e72b2d8..3123690c82dc 100644 --- a/arch/powerpc/kvm/timing.h +++ b/arch/powerpc/kvm/timing.h | |||
@@ -63,9 +63,6 @@ static inline void kvmppc_account_exit_stat(struct kvm_vcpu *vcpu, int type) | |||
63 | case EMULATED_INST_EXITS: | 63 | case EMULATED_INST_EXITS: |
64 | vcpu->stat.emulated_inst_exits++; | 64 | vcpu->stat.emulated_inst_exits++; |
65 | break; | 65 | break; |
66 | case DCR_EXITS: | ||
67 | vcpu->stat.dcr_exits++; | ||
68 | break; | ||
69 | case DSI_EXITS: | 66 | case DSI_EXITS: |
70 | vcpu->stat.dsi_exits++; | 67 | vcpu->stat.dsi_exits++; |
71 | break; | 68 | break; |
diff --git a/include/uapi/linux/kvm.h b/include/uapi/linux/kvm.h index 51776cac6a9b..f6f24aeb9e1a 100644 --- a/include/uapi/linux/kvm.h +++ b/include/uapi/linux/kvm.h | |||
@@ -162,7 +162,7 @@ struct kvm_pit_config { | |||
162 | #define KVM_EXIT_TPR_ACCESS 12 | 162 | #define KVM_EXIT_TPR_ACCESS 12 |
163 | #define KVM_EXIT_S390_SIEIC 13 | 163 | #define KVM_EXIT_S390_SIEIC 13 |
164 | #define KVM_EXIT_S390_RESET 14 | 164 | #define KVM_EXIT_S390_RESET 14 |
165 | #define KVM_EXIT_DCR 15 | 165 | #define KVM_EXIT_DCR 15 /* deprecated */ |
166 | #define KVM_EXIT_NMI 16 | 166 | #define KVM_EXIT_NMI 16 |
167 | #define KVM_EXIT_INTERNAL_ERROR 17 | 167 | #define KVM_EXIT_INTERNAL_ERROR 17 |
168 | #define KVM_EXIT_OSI 18 | 168 | #define KVM_EXIT_OSI 18 |
@@ -268,7 +268,7 @@ struct kvm_run { | |||
268 | __u64 trans_exc_code; | 268 | __u64 trans_exc_code; |
269 | __u32 pgm_code; | 269 | __u32 pgm_code; |
270 | } s390_ucontrol; | 270 | } s390_ucontrol; |
271 | /* KVM_EXIT_DCR */ | 271 | /* KVM_EXIT_DCR (deprecated) */ |
272 | struct { | 272 | struct { |
273 | __u32 dcrn; | 273 | __u32 dcrn; |
274 | __u32 data; | 274 | __u32 data; |