Commit 3de49a73 authored by Zhenyu Wang's avatar Zhenyu Wang

drm/i915/gvt: remove detect_host() MPT hook

We only depend on pvinfo register for GVT-g state detection,
not require hypervisor host detect any more.
Signed-off-by: default avatarZhenyu Wang <zhenyuw@linux.intel.com>
parent d2896e34
...@@ -68,8 +68,6 @@ static const struct intel_gvt_ops intel_gvt_ops = { ...@@ -68,8 +68,6 @@ static const struct intel_gvt_ops intel_gvt_ops = {
*/ */
int intel_gvt_init_host(void) int intel_gvt_init_host(void)
{ {
int ret;
if (intel_gvt_host.initialized) if (intel_gvt_host.initialized)
return 0; return 0;
...@@ -103,11 +101,6 @@ int intel_gvt_init_host(void) ...@@ -103,11 +101,6 @@ int intel_gvt_init_host(void)
if (!intel_gvt_host.mpt) if (!intel_gvt_host.mpt)
return -EINVAL; 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", gvt_dbg_core("Running with hypervisor %s in host mode\n",
supported_hypervisors[intel_gvt_host.hypervisor_type]); supported_hypervisors[intel_gvt_host.hypervisor_type]);
......
...@@ -38,7 +38,6 @@ ...@@ -38,7 +38,6 @@
* both Xen and KVM by providing dedicated hypervisor-related MPT modules. * both Xen and KVM by providing dedicated hypervisor-related MPT modules.
*/ */
struct intel_gvt_mpt { struct intel_gvt_mpt {
int (*detect_host)(void);
int (*host_init)(struct device *dev, void *gvt, const void *ops); int (*host_init)(struct device *dev, void *gvt, const void *ops);
void (*host_exit)(struct device *dev, void *gvt); void (*host_exit)(struct device *dev, void *gvt);
int (*attach_vgpu)(void *vgpu, unsigned long *handle); int (*attach_vgpu)(void *vgpu, unsigned long *handle);
......
...@@ -1248,37 +1248,6 @@ static void kvmgt_page_track_flush_slot(struct kvm *kvm, ...@@ -1248,37 +1248,6 @@ static void kvmgt_page_track_flush_slot(struct kvm *kvm,
spin_unlock(&kvm->mmu_lock); 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) static bool __kvmgt_vgpu_exist(struct intel_vgpu *vgpu, struct kvm *kvm)
{ {
struct intel_vgpu *itr; struct intel_vgpu *itr;
...@@ -1453,7 +1422,6 @@ static unsigned long kvmgt_virt_to_pfn(void *addr) ...@@ -1453,7 +1422,6 @@ static unsigned long kvmgt_virt_to_pfn(void *addr)
} }
struct intel_gvt_mpt kvmgt_mpt = { struct intel_gvt_mpt kvmgt_mpt = {
.detect_host = kvmgt_detect_host,
.host_init = kvmgt_host_init, .host_init = kvmgt_host_init,
.host_exit = kvmgt_host_exit, .host_exit = kvmgt_host_exit,
.attach_vgpu = kvmgt_attach_vgpu, .attach_vgpu = kvmgt_attach_vgpu,
......
...@@ -43,18 +43,6 @@ ...@@ -43,18 +43,6 @@
* hypervisor. * hypervisor.
*/ */
/**
* 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 * intel_gvt_hypervisor_host_init - init GVT-g host side
* *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment