KVM: Disable pagefaults during copy_from_user_inatomic()
With CONFIG_PREEMPT=n, this is needed in order to disable the fault-in code from sleeping. Signed-off-by: Andrea Arcangeli <andrea@qumranet.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
This commit is contained in:
committed by
Avi Kivity
parent
31bb117eb4
commit
0aac03f07b
@@ -554,7 +554,9 @@ int kvm_read_guest_atomic(struct kvm *kvm, gpa_t gpa, void *data,
|
|||||||
addr = gfn_to_hva(kvm, gfn);
|
addr = gfn_to_hva(kvm, gfn);
|
||||||
if (kvm_is_error_hva(addr))
|
if (kvm_is_error_hva(addr))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
pagefault_disable();
|
||||||
r = __copy_from_user_inatomic(data, (void __user *)addr + offset, len);
|
r = __copy_from_user_inatomic(data, (void __user *)addr + offset, len);
|
||||||
|
pagefault_enable();
|
||||||
if (r)
|
if (r)
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user