aboutsummaryrefslogtreecommitdiffstats
path: root/xen/drivers
diff options
context:
space:
mode:
authorXudong Hao <xudong.hao@intel.com>2013-03-26 14:22:07 +0100
committerJan Beulich <jbeulich@suse.com>2013-03-26 14:22:07 +0100
commitdb537fe3023bf157b85c8246782cb72a6f989b31 (patch)
tree552d8ac07bffa0e516a260b8c2f74d9a58aaeb09 /xen/drivers
parentbabea0a412ee24a94ed0bd03543060b2c6bc0bbd (diff)
downloadxen-db537fe3023bf157b85c8246782cb72a6f989b31.tar.gz
xen-db537fe3023bf157b85c8246782cb72a6f989b31.tar.bz2
xen-db537fe3023bf157b85c8246782cb72a6f989b31.zip
x86: reserve pages when SandyBridge integrated graphics
SNB graphics devices have a bug that prevent them from accessing certain memory ranges, namely anything below 1M and in the pages listed in the table. Xen does not initialize below 1MB to heap, i.e. below 1MB pages don't be allocated, so it's unnecessary to reserve memory below the 1 MB mark that has not already been reserved. So reserve those pages listed in the table at xen boot if set detect a SNB gfx device on the CPU to avoid GPU hangs. Signed-off-by: Xudong Hao <xudong.hao@intel.com> Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/drivers')
-rw-r--r--xen/drivers/passthrough/vtd/quirks.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/xen/drivers/passthrough/vtd/quirks.c b/xen/drivers/passthrough/vtd/quirks.c
index 6d839c08bf..7f6c3a75c5 100644
--- a/xen/drivers/passthrough/vtd/quirks.c
+++ b/xen/drivers/passthrough/vtd/quirks.c
@@ -31,6 +31,7 @@
#include <xen/keyhandler.h>
#include <asm/msi.h>
#include <asm/irq.h>
+#include <asm/pci.h>
#include <mach_apic.h>
#include "iommu.h"
#include "dmar.h"
@@ -47,7 +48,6 @@
#define IS_CTG(id) (id == 0x2a408086)
#define IS_ILK(id) (id == 0x00408086 || id == 0x00448086 || id== 0x00628086 || id == 0x006A8086)
#define IS_CPT(id) (id == 0x01008086 || id == 0x01048086)
-#define IS_SNB_GFX(id) (id == 0x01068086 || id == 0x01168086 || id == 0x01268086 || id == 0x01028086 || id == 0x01128086 || id == 0x01228086 || id == 0x010A8086)
static u32 __read_mostly ioh_id;
static u32 __initdata igd_id;