drm/i915/gvt: remove detect_host() MPT hook
authorZhenyu Wang <zhenyuw@linux.intel.com>
Tue, 27 Dec 2016 06:47:04 +0000 (14:47 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Tue, 7 Feb 2017 09:21:44 +0000 (17:21 +0800)
We only depend on pvinfo register for GVT-g state detection,
not require hypervisor host detect any more.

Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
drivers/gpu/drm/i915/gvt/gvt.c
drivers/gpu/drm/i915/gvt/hypercall.h
drivers/gpu/drm/i915/gvt/kvmgt.c
drivers/gpu/drm/i915/gvt/mpt.h

index 0beb17e..9a636a2 100644 (file)
@@ -68,8 +68,6 @@ static const struct intel_gvt_ops intel_gvt_ops = {
  */
 int intel_gvt_init_host(void)
 {
-       int ret;
-
        if (intel_gvt_host.initialized)
                return 0;
 
@@ -103,11 +101,6 @@ int intel_gvt_init_host(void)
        if (!intel_gvt_host.mpt)
                return -EINVAL;
 
-       /* Try to detect if we're running in host instead of VM. */
-       ret = intel_gvt_hypervisor_detect_host();
-       if (ret)
-               return -ENODEV;
-
        gvt_dbg_core("Running with hypervisor %s in host mode\n",
                        supported_hypervisors[intel_gvt_host.hypervisor_type]);
 
index 30e543f..df7f33a 100644 (file)
@@ -38,7 +38,6 @@
  * both Xen and KVM by providing dedicated hypervisor-related MPT modules.
  */
 struct intel_gvt_mpt {
-       int (*detect_host)(void);
        int (*host_init)(struct device *dev, void *gvt, const void *ops);
        void (*host_exit)(struct device *dev, void *gvt);
        int (*attach_vgpu)(void *vgpu, unsigned long *handle);
index f29d2a2..080ca77 100644 (file)
@@ -1248,37 +1248,6 @@ static void kvmgt_page_track_flush_slot(struct kvm *kvm,
        spin_unlock(&kvm->mmu_lock);
 }
 
-static bool kvmgt_check_guest(void)
-{
-       unsigned int eax, ebx, ecx, edx;
-       char s[12];
-       unsigned int *i;
-
-       eax = KVM_CPUID_SIGNATURE;
-       ebx = ecx = edx = 0;
-
-       asm volatile ("cpuid"
-                     : "+a"(eax), "=b"(ebx), "=c"(ecx), "=d"(edx)
-                     :
-                     : "cc", "memory");
-       i = (unsigned int *)s;
-       i[0] = ebx;
-       i[1] = ecx;
-       i[2] = edx;
-
-       return !strncmp(s, "KVMKVMKVM", strlen("KVMKVMKVM"));
-}
-
-/**
- * NOTE:
- * It's actually impossible to check if we are running in KVM host,
- * since the "KVM host" is simply native. So we only dectect guest here.
- */
-static int kvmgt_detect_host(void)
-{
-       return kvmgt_check_guest() ? -ENODEV : 0;
-}
-
 static bool __kvmgt_vgpu_exist(struct intel_vgpu *vgpu, struct kvm *kvm)
 {
        struct intel_vgpu *itr;
@@ -1453,7 +1422,6 @@ static unsigned long kvmgt_virt_to_pfn(void *addr)
 }
 
 struct intel_gvt_mpt kvmgt_mpt = {
-       .detect_host = kvmgt_detect_host,
        .host_init = kvmgt_host_init,
        .host_exit = kvmgt_host_exit,
        .attach_vgpu = kvmgt_attach_vgpu,
index 1af5830..4193536 100644 (file)
  */
 
 /**
- * intel_gvt_hypervisor_detect_host - check if GVT-g is running within
- * hypervisor host/privilged domain
- *
- * Returns:
- * Zero on success, -ENODEV if current kernel is running inside a VM
- */
-static inline int intel_gvt_hypervisor_detect_host(void)
-{
-       return intel_gvt_host.mpt->detect_host();
-}
-
-/**
  * intel_gvt_hypervisor_host_init - init GVT-g host side
  *
  * Returns: