diff options
| -rw-r--r-- | arch/powerpc/kvm/book3s_xive.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s_xive.c b/arch/powerpc/kvm/book3s_xive.c index 4280cd8bb70c..4953957333b7 100644 --- a/arch/powerpc/kvm/book3s_xive.c +++ b/arch/powerpc/kvm/book3s_xive.c | |||
| @@ -1096,6 +1096,21 @@ void kvmppc_xive_disable_vcpu_interrupts(struct kvm_vcpu *vcpu) | |||
| 1096 | arch_spin_unlock(&sb->lock); | 1096 | arch_spin_unlock(&sb->lock); |
| 1097 | } | 1097 | } |
| 1098 | } | 1098 | } |
| 1099 | |||
| 1100 | /* Disable vcpu's escalation interrupt */ | ||
| 1101 | if (vcpu->arch.xive_esc_on) { | ||
| 1102 | __raw_readq((void __iomem *)(vcpu->arch.xive_esc_vaddr + | ||
| 1103 | XIVE_ESB_SET_PQ_01)); | ||
| 1104 | vcpu->arch.xive_esc_on = false; | ||
| 1105 | } | ||
| 1106 | |||
| 1107 | /* | ||
| 1108 | * Clear pointers to escalation interrupt ESB. | ||
| 1109 | * This is safe because the vcpu->mutex is held, preventing | ||
| 1110 | * any other CPU from concurrently executing a KVM_RUN ioctl. | ||
| 1111 | */ | ||
| 1112 | vcpu->arch.xive_esc_vaddr = 0; | ||
| 1113 | vcpu->arch.xive_esc_raddr = 0; | ||
| 1099 | } | 1114 | } |
| 1100 | 1115 | ||
| 1101 | void kvmppc_xive_cleanup_vcpu(struct kvm_vcpu *vcpu) | 1116 | void kvmppc_xive_cleanup_vcpu(struct kvm_vcpu *vcpu) |
