summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/i915/gvt/scheduler.c
diff options
context:
space:
mode:
authorChangbin Du <changbin.du@intel.com>2018-01-30 19:19:46 +0800
committerZhenyu Wang <zhenyuw@linux.intel.com>2018-03-06 13:19:16 +0800
commite6e9c46fd2351a07f31b3bf3101c57170c13aeab (patch)
tree5ef8619496b1f4697c79e31e88bdc661336f4ad8 /drivers/gpu/drm/i915/gvt/scheduler.c
parenta143cef7dbefc1cb9853d990c18b16347ecceb39 (diff)
drm/i915/gvt: Factor out intel_vgpu_{get, put}_ppgtt_mm interface
Factor out these two interfaces so we can kill some duplicated code in scheduler.c. v2: - rename to intel_vgpu_{get,put}_ppgtt_mm - refine handle_g2v_notification Signed-off-by: Changbin Du <changbin.du@intel.com> Reviewed-by: Zhi Wang <zhi.a.wang@intel.com> Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/gvt/scheduler.c')
-rw-r--r--drivers/gpu/drm/i915/gvt/scheduler.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/drivers/gpu/drm/i915/gvt/scheduler.c b/drivers/gpu/drm/i915/gvt/scheduler.c
index 989304ef18e3..f4765ed4e92a 100644
--- a/drivers/gpu/drm/i915/gvt/scheduler.c
+++ b/drivers/gpu/drm/i915/gvt/scheduler.c
@@ -1198,18 +1198,10 @@ static int prepare_mm(struct intel_vgpu_workload *workload)
read_guest_pdps(workload->vgpu, workload->ring_context_gpa, (void *)pdps);
- mm = intel_vgpu_find_ppgtt_mm(workload->vgpu, pdps);
- if (mm) {
- intel_vgpu_mm_get(mm);
- } else {
-
- mm = intel_vgpu_create_ppgtt_mm(workload->vgpu, root_entry_type,
- pdps);
- if (IS_ERR(mm)) {
- gvt_vgpu_err("fail to create mm object.\n");
- return PTR_ERR(mm);
- }
- }
+ mm = intel_vgpu_get_ppgtt_mm(workload->vgpu, root_entry_type, pdps);
+ if (IS_ERR(mm))
+ return PTR_ERR(mm);
+
workload->shadow_mm = mm;
return 0;
}