aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvi Kivity <avi@qumranet.com>2008-01-01 14:19:48 +0200
committerAvi Kivity <avi@qumranet.com>2008-01-01 14:40:01 +0200
commit91051a4955255317cab0d09d8849ec12db85f924 (patch)
tree1bffc2c0d96af6bbe39490dcf9c8e56ab9bce2ad
parentdcfbe05b0a370341c2ef72ee314eacfb924b6de6 (diff)
KVM: Fix unbalanced mmap_sem operations in cmpxchg8b emulationkvm-59rc2kvm-59
Signed-off-by: Avi Kivity <avi@qumranet.com>
-rw-r--r--arch/x86/kvm/x86.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 0b11b7f79011..c5b4825ca033 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -1758,9 +1758,9 @@ static int emulator_cmpxchg_emulated(unsigned long addr,
set_64bit((u64 *)(addr + offset_in_page(gpa)), val);
kunmap_atomic(addr, KM_USER0);
kvm_release_page_dirty(page);
+ emul_write:
+ up_read(&current->mm->mmap_sem);
}
-emul_write:
- up_read(&current->mm->mmap_sem);
#endif
return emulator_write_emulated(addr, new, bytes, vcpu);