drm/i915/gvt: remove obsolete code for old kvmgt opregion
authorJike Song <jike.song@intel.com>
Thu, 3 Nov 2016 10:38:32 +0000 (18:38 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Thu, 10 Nov 2016 07:45:12 +0000 (15:45 +0800)
Current GVT contains some obsolete logic originally cooked to
support the old, non-vfio kvmgt, which is actually workarounds.
We don't support that anymore, so it's safe to remove it and
make a better framework.

Signed-off-by: Jike Song <jike.song@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
drivers/gpu/drm/i915/gvt/cfg_space.c
drivers/gpu/drm/i915/gvt/hypercall.h
drivers/gpu/drm/i915/gvt/mpt.h
drivers/gpu/drm/i915/gvt/opregion.c
drivers/gpu/drm/i915/gvt/vgpu.c

index 4c687740f5f11b854553d855b86fa1965d142d51..865629a5c553139a8f03c04d337b818924713958 100644 (file)
@@ -82,9 +82,8 @@ static int map_aperture(struct intel_vgpu *vgpu, bool map)
 
        ret = intel_gvt_hypervisor_map_gfn_to_mfn(vgpu, first_gfn,
                                                  first_mfn,
-                                                 vgpu_aperture_sz(vgpu)
-                                                 >> PAGE_SHIFT, map,
-                                                 GVT_MAP_APERTURE);
+                                                 vgpu_aperture_sz(vgpu) >>
+                                                 PAGE_SHIFT, map);
        if (ret)
                return ret;
 
index 027ef558d91ccc38c67a4f91b182def3c9f401f6..193fd38a96af756065a75c1934f23445a3ad29a6 100644 (file)
@@ -60,8 +60,7 @@ struct intel_gvt_mpt {
                         unsigned long len);
        unsigned long (*gfn_to_mfn)(unsigned long handle, unsigned long gfn);
        int (*map_gfn_to_mfn)(unsigned long handle, unsigned long gfn,
-                             unsigned long mfn, unsigned int nr, bool map,
-                             int type);
+                             unsigned long mfn, unsigned int nr, bool map);
        int (*set_trap_area)(unsigned long handle, u64 start, u64 end,
                             bool map);
 };
index 67858782d32782c3c1d7c322895d0335bdbd560d..15e08dcb3199a6b96262e0cfb39202872444e74a 100644 (file)
@@ -224,11 +224,6 @@ static inline unsigned long intel_gvt_hypervisor_gfn_to_mfn(
        return intel_gvt_host.mpt->gfn_to_mfn(vgpu->handle, gfn);
 }
 
-enum {
-       GVT_MAP_APERTURE = 0,
-       GVT_MAP_OPREGION,
-};
-
 /**
  * intel_gvt_hypervisor_map_gfn_to_mfn - map a GFN region to MFN
  * @vgpu: a vGPU
@@ -236,7 +231,6 @@ enum {
  * @mfn: host PFN
  * @nr: amount of PFNs
  * @map: map or unmap
- * @type: map type
  *
  * Returns:
  * Zero on success, negative error code if failed.
@@ -244,10 +238,10 @@ enum {
 static inline int intel_gvt_hypervisor_map_gfn_to_mfn(
                struct intel_vgpu *vgpu, unsigned long gfn,
                unsigned long mfn, unsigned int nr,
-               bool map, int type)
+               bool map)
 {
        return intel_gvt_host.mpt->map_gfn_to_mfn(vgpu->handle, gfn, mfn, nr,
-                                                 map, type);
+                                                 map);
 }
 
 /**
index 95218913b0bc19f089fa71c0c21ed445f5c96096..d2a0fbc896c3cb2ca0734a9371b603fb8669a643 100644 (file)
@@ -73,7 +73,7 @@ static int map_vgpu_opregion(struct intel_vgpu *vgpu, bool map)
                }
                ret = intel_gvt_hypervisor_map_gfn_to_mfn(vgpu,
                                vgpu_opregion(vgpu)->gfn[i],
-                               mfn, 1, map, GVT_MAP_OPREGION);
+                               mfn, 1, map);
                if (ret) {
                        gvt_err("fail to map GFN to MFN, errno: %d\n", ret);
                        return ret;
@@ -89,28 +89,18 @@ static int map_vgpu_opregion(struct intel_vgpu *vgpu, bool map)
  */
 void intel_vgpu_clean_opregion(struct intel_vgpu *vgpu)
 {
-       int i;
-
        gvt_dbg_core("vgpu%d: clean vgpu opregion\n", vgpu->id);
 
        if (!vgpu_opregion(vgpu)->va)
                return;
 
-       if (intel_gvt_host.hypervisor_type == INTEL_GVT_HYPERVISOR_KVM) {
-               vunmap(vgpu_opregion(vgpu)->va);
-               for (i = 0; i < INTEL_GVT_OPREGION_PAGES; i++) {
-                       if (vgpu_opregion(vgpu)->pages[i]) {
-                               put_page(vgpu_opregion(vgpu)->pages[i]);
-                               vgpu_opregion(vgpu)->pages[i] = NULL;
-                       }
-               }
-       } else {
+       if (intel_gvt_host.hypervisor_type == INTEL_GVT_HYPERVISOR_XEN) {
                map_vgpu_opregion(vgpu, false);
                free_pages((unsigned long)vgpu_opregion(vgpu)->va,
                                INTEL_GVT_OPREGION_PORDER);
-       }
 
-       vgpu_opregion(vgpu)->va = NULL;
+               vgpu_opregion(vgpu)->va = NULL;
+       }
 }
 
 /**
@@ -137,22 +127,8 @@ int intel_vgpu_init_opregion(struct intel_vgpu *vgpu, u32 gpa)
                ret = map_vgpu_opregion(vgpu, true);
                if (ret)
                        return ret;
-       } else {
-               gvt_dbg_core("emulate opregion from userspace\n");
-
-               /*
-                * If opregion pages are not allocated from host kenrel,
-                * most of the params are meaningless
-                */
-               ret = intel_gvt_hypervisor_map_gfn_to_mfn(vgpu,
-                               0, /* not used */
-                               0, /* not used */
-                               2, /* not used */
-                               1,
-                               GVT_MAP_OPREGION);
-               if (ret)
-                       return ret;
        }
+
        return 0;
 }
 
index de3c1876aae3e945b148dea5d01a1a6dd0e67162..9b09f697862cc9a93852bbbf5f54fd0e6d8ccf08 100644 (file)
@@ -315,15 +315,9 @@ static struct intel_vgpu *__intel_gvt_create_vgpu(struct intel_gvt *gvt,
        if (ret)
                goto out_detach_hypervisor_vgpu;
 
-       if (intel_gvt_host.hypervisor_type == INTEL_GVT_HYPERVISOR_KVM) {
-               ret = intel_vgpu_init_opregion(vgpu, 0);
-               if (ret)
-                       goto out_clean_gtt;
-       }
-
        ret = intel_vgpu_init_display(vgpu);
        if (ret)
-               goto out_clean_opregion;
+               goto out_clean_gtt;
 
        ret = intel_vgpu_init_execlist(vgpu);
        if (ret)
@@ -348,8 +342,6 @@ out_clean_execlist:
        intel_vgpu_clean_execlist(vgpu);
 out_clean_display:
        intel_vgpu_clean_display(vgpu);
-out_clean_opregion:
-       intel_vgpu_clean_opregion(vgpu);
 out_clean_gtt:
        intel_vgpu_clean_gtt(vgpu);
 out_detach_hypervisor_vgpu: