summaryrefslogtreecommitdiff
path: root/arch/ia64/kvm/kvm-ia64.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-11-12 10:38:42 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2008-11-12 10:38:42 -0800
commit5d2007ebc278525cbe8d2e3ef559a4b191ee4ded (patch)
tree04287151da2ecbd8055703d34b0b572709651137 /arch/ia64/kvm/kvm-ia64.c
parent1c1271850494f06b63ae6b485e2e1b9c27ffb2d1 (diff)
parente17d1dc0863767bab8fde4ba9be92c7f79e7fe50 (diff)
downloadlinux-5d2007ebc278525cbe8d2e3ef559a4b191ee4ded.tar.gz
linux-5d2007ebc278525cbe8d2e3ef559a4b191ee4ded.tar.bz2
linux-5d2007ebc278525cbe8d2e3ef559a4b191ee4ded.zip
Merge branch 'kvm-updates/2.6.28' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm
* 'kvm-updates/2.6.28' of git://git.kernel.org/pub/scm/linux/kernel/git/avi/kvm: KVM: Fix pit memory leak if unable to allocate irq source id KVM: ia64: fix vmm_spin_{un}lock for !CONFIG_SMP KVM: VMX: Set IGMT bit in EPT entry KVM: Require the PCI subsystem x86: KVM guest: fix section mismatch warning in kvmclock.c KVM: ia64: Use guest signal mask when blocking KVM: MMU: increase per-vcpu rmap cache alloc size
Diffstat (limited to 'arch/ia64/kvm/kvm-ia64.c')
-rw-r--r--arch/ia64/kvm/kvm-ia64.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index 3caac477de9e..af1464f7a6ad 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -673,16 +673,16 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
vcpu_load(vcpu);
+ if (vcpu->sigset_active)
+ sigprocmask(SIG_SETMASK, &vcpu->sigset, &sigsaved);
+
if (unlikely(vcpu->arch.mp_state == KVM_MP_STATE_UNINITIALIZED)) {
kvm_vcpu_block(vcpu);
clear_bit(KVM_REQ_UNHALT, &vcpu->requests);
- vcpu_put(vcpu);
- return -EAGAIN;
+ r = -EAGAIN;
+ goto out;
}
- if (vcpu->sigset_active)
- sigprocmask(SIG_SETMASK, &vcpu->sigset, &sigsaved);
-
if (vcpu->mmio_needed) {
memcpy(vcpu->mmio_data, kvm_run->mmio.data, 8);
kvm_set_mmio_data(vcpu);
@@ -690,7 +690,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run)
vcpu->mmio_needed = 0;
}
r = __vcpu_run(vcpu, kvm_run);
-
+out:
if (vcpu->sigset_active)
sigprocmask(SIG_SETMASK, &sigsaved, NULL);