[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] Decouple SandyBridge quirk from VTd timeout



Currently the quirk code for SandyBridge uses the VTd timeout value
when writing to an IGD register.  Since the IGD is not part of the VTd
engine this is the wrong timeout value to use.  Change this code to
use a timeout value that is unique to the quirk code.

Signed-off-by: Don Dugger <donald.d.dugger@xxxxxxxxx>
Reviewed-by: Allen Kay <allen.m.kay@xxxxxxxxx>
Reviewed-by: Eddie Dong <eddie.dong@xxxxxxxxx>
Reviewed-by: Will Auld <will.auld@xxxxxxxxx>

--
diff -r cf06cdd94296 xen/drivers/passthrough/vtd/quirks.c
--- a/xen/drivers/passthrough/vtd/quirks.c      Mon Sep 22 17:02:48 2014 +0100
+++ b/xen/drivers/passthrough/vtd/quirks.c      Mon Oct 06 17:55:54 2014 -0600
@@ -50,6 +50,8 @@
 #define IS_ILK(id)    (id == 0x00408086 || id == 0x00448086 || id== 0x00628086 
|| id == 0x006A8086)
 #define IS_CPT(id)    (id == 0x01008086 || id == 0x01048086)
 
+#define SNB_IGD_TIMEOUT        MILLISECS(1000)
+
 static u32 __read_mostly ioh_id;
 static u32 __initdata igd_id;
 bool_t __read_mostly rwbf_quirk;
@@ -177,7 +179,7 @@
     start_time = NOW();
     while ( (*(volatile u32 *)(igd_reg_va + 0x22AC) & 0xF) != 0 )
     {
-        if ( NOW() > start_time + DMAR_OPERATION_TIMEOUT )
+        if ( NOW() > start_time + SNB_IGD_TIMEOUT )
         {
             dprintk(XENLOG_INFO VTDPREFIX,
                     "snb_vtd_ops_preamble: failed to disable idle 
handshake\n");

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.