xend-devid-or-name.patch - Upstream patches from Jan 22019-x86-cpuidle-online-check.patch 22051-x86-forced-EOI.patch 22067-x86-irq-domain.patch 22068-vtd-irte-RH-bit.patch 22071-ept-get-entry-lock.patch 22084-x86-xsave-off.patch - bnc#638465 - hypervisor panic in memory handling heaplock.patch - Update to Xen 4.0.1. This is a bug fix release. OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=73
36 lines
1.5 KiB
Diff
36 lines
1.5 KiB
Diff
# HG changeset patch
|
|
# User Keir Fraser <keir.fraser@citrix.com>
|
|
# 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@linux.intel.com>
|
|
|
|
--- a/xen/drivers/passthrough/vtd/intremap.c
|
|
+++ b/xen/drivers/passthrough/vtd/intremap.c
|
|
@@ -318,9 +318,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;
|
|
@@ -630,9 +631,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) &
|