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

[Xen-changelog] [xen-unstable] VT-d: Hardware require RH bit to be set in IRTE when delivery mode is LPR



# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1282817816 -3600
# Node ID 3c4c3d48a8350994f4450314c6b759771c7ad4ef
# Parent  3eb5127e46365242401e37df292fbe290fa0a974
VT-d: Hardware require RH bit to be set in IRTE when delivery mode is LPR

Signed-off-by: Sheng Yang <sheng@xxxxxxxxxxxxxxx>
---
 xen/drivers/passthrough/vtd/intremap.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff -r 3eb5127e4636 -r 3c4c3d48a835 xen/drivers/passthrough/vtd/intremap.c
--- a/xen/drivers/passthrough/vtd/intremap.c    Thu Aug 26 11:16:14 2010 +0100
+++ b/xen/drivers/passthrough/vtd/intremap.c    Thu Aug 26 11:16:56 2010 +0100
@@ -320,9 +320,10 @@ static int ioapic_rte_to_remap_entry(str
         *(((u32 *)&new_rte) + 0) = value;
         new_ire.lo.fpd = 0;
         new_ire.lo.dm = new_rte.dest_mode;
-        new_ire.lo.rh = 0;
         new_ire.lo.tm = new_rte.trigger;
         new_ire.lo.dlm = new_rte.delivery_mode;
+        /* Hardware require RH = 1 for LPR delivery mode */
+        new_ire.lo.rh = (new_ire.lo.dlm == dest_LowestPrio);
         new_ire.lo.avail = 0;
         new_ire.lo.res_1 = 0;
         new_ire.lo.vector = new_rte.vector;
@@ -632,9 +633,10 @@ static int msi_msg_to_remap_entry(
     /* Set interrupt remapping table entry */
     new_ire.lo.fpd = 0;
     new_ire.lo.dm = (msg->address_lo >> MSI_ADDR_DESTMODE_SHIFT) & 0x1;
-    new_ire.lo.rh = 0;
     new_ire.lo.tm = (msg->data >> MSI_DATA_TRIGGER_SHIFT) & 0x1;
     new_ire.lo.dlm = (msg->data >> MSI_DATA_DELIVERY_MODE_SHIFT) & 0x1;
+    /* Hardware require RH = 1 for LPR delivery mode */
+    new_ire.lo.rh = (new_ire.lo.dlm == dest_LowestPrio);
     new_ire.lo.avail = 0;
     new_ire.lo.res_1 = 0;
     new_ire.lo.vector = (msg->data >> MSI_DATA_VECTOR_SHIFT) &

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

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