diff options
| -rw-r--r-- | arch/x86/kvm/x86.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 3320804bb2ac..04c5d96b1d67 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c | |||
| @@ -3431,6 +3431,7 @@ long kvm_arch_vcpu_ioctl(struct file *filp, | |||
| 3431 | }; | 3431 | }; |
| 3432 | case KVM_SET_VAPIC_ADDR: { | 3432 | case KVM_SET_VAPIC_ADDR: { |
| 3433 | struct kvm_vapic_addr va; | 3433 | struct kvm_vapic_addr va; |
| 3434 | int idx; | ||
| 3434 | 3435 | ||
| 3435 | r = -EINVAL; | 3436 | r = -EINVAL; |
| 3436 | if (!lapic_in_kernel(vcpu)) | 3437 | if (!lapic_in_kernel(vcpu)) |
| @@ -3438,7 +3439,9 @@ long kvm_arch_vcpu_ioctl(struct file *filp, | |||
| 3438 | r = -EFAULT; | 3439 | r = -EFAULT; |
| 3439 | if (copy_from_user(&va, argp, sizeof va)) | 3440 | if (copy_from_user(&va, argp, sizeof va)) |
| 3440 | goto out; | 3441 | goto out; |
| 3442 | idx = srcu_read_lock(&vcpu->kvm->srcu); | ||
| 3441 | r = kvm_lapic_set_vapic_addr(vcpu, va.vapic_addr); | 3443 | r = kvm_lapic_set_vapic_addr(vcpu, va.vapic_addr); |
| 3444 | srcu_read_unlock(&vcpu->kvm->srcu, idx); | ||
| 3442 | break; | 3445 | break; |
| 3443 | } | 3446 | } |
| 3444 | case KVM_X86_SETUP_MCE: { | 3447 | case KVM_X86_SETUP_MCE: { |
