diff --git a/arch/powerpc/kvm/booke_emulate.c b/arch/powerpc/kvm/booke_emulate.c
index 83c3796..6d78906 100644
--- a/arch/powerpc/kvm/booke_emulate.c
+++ b/arch/powerpc/kvm/booke_emulate.c
@@ -46,18 +46,21 @@ int kvmppc_booke_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,
        switch (get_op(inst)) {
        case 19:
                switch (get_xop(inst)) {
+#ifndef CONFIG_KVM_BOOKE_HV
                case OP_19_XOP_RFI:
                        kvmppc_emul_rfi(vcpu);
                        kvmppc_set_exit_type(vcpu, EMULATED_RFI_EXITS);
                        *advance = 0;
                        break;

+#endif
                default:
                        emulated = EMULATE_FAIL;
                        break;
                }
                break;

+#ifndef CONFIG_KVM_BOOKE_HV
        case 31:
                switch (get_xop(inst)) {

@@ -89,6 +92,7 @@ int kvmppc_booke_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,

                break;

+#endif
        default:
                emulated = EMULATE_FAIL;
        }
@@ -96,23 +100,19 @@ int kvmppc_booke_emulate_op(struct kvm_run *run, struct kvm_vcpu *vcpu,
        return emulated;
 }

-/*
- * NOTE: some of these registers are not emulated on BOOKE_HV (GS-mode).
- * Their backing store is in real registers, and these functions
- * will return the wrong result if called for them in another context
- * (such as debugging).
- */
 int kvmppc_booke_emulate_mtspr(struct kvm_vcpu *vcpu, int sprn, ulong spr_val)
 {
        int emulated = EMULATE_DONE;

        switch (sprn) {
+#ifndef CONFIG_KVM_BOOKE_HV
        case SPRN_DEAR:
                vcpu->arch.shared->dar = spr_val;
                break;
        case SPRN_ESR:
                vcpu->arch.shared->esr = spr_val;
                break;
+#endif
        case SPRN_DBCR0:
                vcpu->arch.dbcr0 = spr_val;
                break;
@@ -223,6 +223,7 @@ int kvmppc_booke_emulate_mfspr(struct kvm_vcpu *vcpu, int sprn, ulong *spr_val)
        int emulated = EMULATE_DONE;

        switch (sprn) {
+#ifndef CONFIG_KVM_BOOKE_HV
        case SPRN_IVPR:
                *spr_val = vcpu->arch.ivpr;
                break;
@@ -232,6 +233,7 @@ int kvmppc_booke_emulate_mfspr(struct kvm_vcpu *vcpu, int sprn, ulong *spr_val)
        case SPRN_ESR:
                *spr_val = vcpu->arch.shared->esr;
                break;
+#endif
        case SPRN_DBCR0:
                *spr_val = vcpu->arch.dbcr0;
                break;
