mirror of https://gitee.com/openkylin/linux.git
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: Zhenyu Wang <zhenyuw@linux.intel.com>
This commit is contained in:
parent
d2896e34eb
commit
3de49a7314
|
@ -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)
|
||||||
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 @@
|
||||||
* 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,
|
||||||
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)
|
||||||
}
|
}
|
||||||
|
|
||||||
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 @@
|
||||||
* 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
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue