summaryrefslogtreecommitdiff
path: root/arch/powerpc/kvm/e500.h
diff options
context:
space:
mode:
authorPaul Mackerras <paulus@samba.org>2012-06-01 14:20:24 +0400
committerAvi Kivity <avi@redhat.com>2012-06-19 16:04:13 +0400
commit081f323bd3cc3a4d5ee6276e53cc52eddfc20a63 (patch)
tree057cb2a7b22d55cd50275a5a5dff6b8ce56abbb7 /arch/powerpc/kvm/e500.h
parentf961f72836eb6c0fd76201f6f6b2fafff93c4cea (diff)
downloadlinux-081f323bd3cc3a4d5ee6276e53cc52eddfc20a63.tar.xz
KVM: PPC: Book3S HV: Drop locks around call to kvmppc_pin_guest_page
At the moment we call kvmppc_pin_guest_page() in kvmppc_update_vpa() with two spinlocks held: the vcore lock and the vcpu->vpa_update_lock. This is not good, since kvmppc_pin_guest_page() calls down_read() and get_user_pages_fast(), both of which can sleep. This bug was introduced in 2e25aa5f ("KVM: PPC: Book3S HV: Make virtual processor area registration more robust"). This arranges to drop those spinlocks before calling kvmppc_pin_guest_page() and re-take them afterwards. Dropping the vcore lock in kvmppc_run_core() means we have to set the vcore_state field to VCORE_RUNNING before we drop the lock, so that other vcpus won't try to run this vcore. Signed-off-by: Paul Mackerras <paulus@samba.org> Acked-by: Alexander Graf <agraf@suse.de> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc/kvm/e500.h')
0 files changed, 0 insertions, 0 deletions