OSDN Git Service

drm/i915/gvt: Disable access to stolen memory as a guest
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 9 Nov 2016 10:39:05 +0000 (10:39 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 14 Feb 2017 09:28:34 +0000 (09:28 +0000)
Explicitly disable stolen memory when running as a guest in a virtual
machine, since the memory is not mediated between clients and reserved
entirely for the host. The actual size should be reported as zero, but
like every other quirk we want to tell the user what is happening.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99028
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20161109103905.17860-1-chris@chris-wilson.co.uk
Reviewed-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Cc: stable@vger.kernel.org
drivers/gpu/drm/i915/i915_gem_stolen.c

index 82ca8f4..f3abdc2 100644 (file)
@@ -409,6 +409,11 @@ int i915_gem_init_stolen(struct drm_i915_private *dev_priv)
 
        mutex_init(&dev_priv->mm.stolen_lock);
 
+       if (intel_vgpu_active(dev_priv)) {
+               DRM_INFO("iGVT-g active, disabling use of stolen memory\n");
+               return 0;
+       }
+
 #ifdef CONFIG_INTEL_IOMMU
        if (intel_iommu_gfx_mapped && INTEL_GEN(dev_priv) < 8) {
                DRM_INFO("DMAR active, disabling use of stolen memory\n");