OSDN Git Service
(root)
/
uclinux-h8
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
15aaa81
)
KVM: VMX: convert init_rmode_tss() to slots_lock
author
Marcelo Tosatti
<marcelo@kvack.org>
Tue, 18 Mar 2008 20:42:34 +0000
(17:42 -0300)
committer
Avi Kivity
<avi@qumranet.com>
Tue, 25 Mar 2008 08:22:17 +0000
(10:22 +0200)
init_rmode_tss was forgotten during the conversion from mmap_sem to
slots_lock.
INFO: task qemu-system-x86:3748 blocked for more than 120 seconds.
Call Trace:
[<
ffffffff8053d100
>] __down_read+0x86/0x9e
[<
ffffffff8053fb43
>] do_page_fault+0x346/0x78e
[<
ffffffff8053d235
>] trace_hardirqs_on_thunk+0x35/0x3a
[<
ffffffff8053dcad
>] error_exit+0x0/0xa9
[<
ffffffff8035a7a7
>] copy_user_generic_string+0x17/0x40
[<
ffffffff88099a8a
>] :kvm:kvm_write_guest_page+0x3e/0x5f
[<
ffffffff880b661a
>] :kvm_intel:init_rmode_tss+0xa7/0xf9
[<
ffffffff880b7d7e
>] :kvm_intel:vmx_vcpu_reset+0x10/0x38a
[<
ffffffff8809b9a5
>] :kvm:kvm_arch_vcpu_setup+0x20/0x53
[<
ffffffff8809a1e4
>] :kvm:kvm_vm_ioctl+0xad/0x1cf
[<
ffffffff80249dea
>] __lock_acquire+0x4f7/0xc28
[<
ffffffff8028fad9
>] vfs_ioctl+0x21/0x6b
[<
ffffffff8028fd75
>] do_vfs_ioctl+0x252/0x26b
[<
ffffffff8028fdca
>] sys_ioctl+0x3c/0x5e
[<
ffffffff8020b01b
>] system_call_after_swapgs+0x7b/0x80
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@qumranet.com>
arch/x86/kvm/vmx.c
patch
|
blob
|
history
diff --git
a/arch/x86/kvm/vmx.c
b/arch/x86/kvm/vmx.c
index
f2df03c
..
8e14628
100644
(file)
--- a/
arch/x86/kvm/vmx.c
+++ b/
arch/x86/kvm/vmx.c
@@
-1433,7
+1433,7
@@
static int init_rmode_tss(struct kvm *kvm)
int ret = 0;
int r;
- down_read(&
current->mm->mmap_sem
);
+ down_read(&
kvm->slots_lock
);
r = kvm_clear_guest_page(kvm, fn, 0, PAGE_SIZE);
if (r < 0)
goto out;
@@
-1456,7
+1456,7
@@
static int init_rmode_tss(struct kvm *kvm)
ret = 1;
out:
- up_read(&
current->mm->mmap_sem
);
+ up_read(&
kvm->slots_lock
);
return ret;
}