aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/drm/i915/gvt/kvmgt.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c
index cd218b07c6f6..1ea3eb270de8 100644
--- a/drivers/gpu/drm/i915/gvt/kvmgt.c
+++ b/drivers/gpu/drm/i915/gvt/kvmgt.c
@@ -1424,7 +1424,7 @@ static int kvmgt_rw_gpa(unsigned long handle, unsigned long gpa,
1424{ 1424{
1425 struct kvmgt_guest_info *info; 1425 struct kvmgt_guest_info *info;
1426 struct kvm *kvm; 1426 struct kvm *kvm;
1427 int ret; 1427 int idx, ret;
1428 bool kthread = current->mm == NULL; 1428 bool kthread = current->mm == NULL;
1429 1429
1430 if (!handle_valid(handle)) 1430 if (!handle_valid(handle))
@@ -1436,8 +1436,10 @@ static int kvmgt_rw_gpa(unsigned long handle, unsigned long gpa,
1436 if (kthread) 1436 if (kthread)
1437 use_mm(kvm->mm); 1437 use_mm(kvm->mm);
1438 1438
1439 idx = srcu_read_lock(&kvm->srcu);
1439 ret = write ? kvm_write_guest(kvm, gpa, buf, len) : 1440 ret = write ? kvm_write_guest(kvm, gpa, buf, len) :
1440 kvm_read_guest(kvm, gpa, buf, len); 1441 kvm_read_guest(kvm, gpa, buf, len);
1442 srcu_read_unlock(&kvm->srcu, idx);
1441 1443
1442 if (kthread) 1444 if (kthread)
1443 unuse_mm(kvm->mm); 1445 unuse_mm(kvm->mm);