aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kvm
diff options
context:
space:
mode:
authorJes Sorensen <jes@sgi.com>2009-04-17 16:43:27 +0200
committerAvi Kivity <avi@redhat.com>2009-06-10 11:48:44 +0300
commit43890ae8bcc5fa88ef3061613efe041b866fbc5a (patch)
treeb1bd435ad9dda722eba682d8fb724c7da84ae20f /arch/ia64/kvm
parentKVM: ia64: preserve int status through call to kvm_insert_vmm_mapping (diff)
downloadlinux-dev-43890ae8bcc5fa88ef3061613efe041b866fbc5a.tar.xz
linux-dev-43890ae8bcc5fa88ef3061613efe041b866fbc5a.zip
KVM: ia64: ia64 vcpu_reset() do not call kmalloc() with irqs disabled
Restore local irq enabled state before calling kvm_arch_vcpu_init(), which calls kmalloc(GFP_KERNEL). Signed-off-by: Jes Sorensen <jes@sgi.com> Acked-by: Xiantao Zhang <xiantao.zhang@intel.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/ia64/kvm')
-rw-r--r--arch/ia64/kvm/kvm-ia64.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
index cf5a19390f4e..be4413e1f43f 100644
--- a/arch/ia64/kvm/kvm-ia64.c
+++ b/arch/ia64/kvm/kvm-ia64.c
@@ -2001,6 +2001,7 @@ static int vcpu_reset(struct kvm_vcpu *vcpu)
long psr;
local_irq_save(psr);
r = kvm_insert_vmm_mapping(vcpu);
+ local_irq_restore(psr);
if (r)
goto fail;
@@ -2013,7 +2014,6 @@ static int vcpu_reset(struct kvm_vcpu *vcpu)
kvm_purge_vmm_mapping(vcpu);
r = 0;
fail:
- local_irq_restore(psr);
return r;
}