aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/xen/hvm
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-10-19 10:50:46 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-10-19 10:50:46 +0100
commit88cc4a0fc546e7a5bb3abd71fd99485b6bf698ab (patch)
tree38c78c7675bb4331ebf5babafaa383e1c397c780 /xen/include/xen/hvm
parent70829c3d48270689fdea6ec8808a232d88483d65 (diff)
downloadxen-88cc4a0fc546e7a5bb3abd71fd99485b6bf698ab.tar.gz
xen-88cc4a0fc546e7a5bb3abd71fd99485b6bf698ab.tar.bz2
xen-88cc4a0fc546e7a5bb3abd71fd99485b6bf698ab.zip
x86: vMSI: Fix msi irq affinity issue for hvm guest.
There is a race between guest setting new vector and doing EOI on old vector. Once guest sets new vector before its doing EOI on vector, when guest does eoi, hypervisor may fail to find the related pirq, and hypervisor may miss to EOI real vector and leads to system hang. We may need to add a timer for each pirq interrupt source to avoid host hang, but this is another topic, and will be addressed later. Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Diffstat (limited to 'xen/include/xen/hvm')
-rw-r--r--xen/include/xen/hvm/irq.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/xen/include/xen/hvm/irq.h b/xen/include/xen/hvm/irq.h
index c1747ed73c..9e2eedbf6a 100644
--- a/xen/include/xen/hvm/irq.h
+++ b/xen/include/xen/hvm/irq.h
@@ -58,8 +58,10 @@ struct dev_intx_gsi_link {
#define GLFAGS_SHIFT_TRG_MODE 15
struct hvm_gmsi_info {
- uint32_t gvec;
+ uint16_t gvec;
+ uint16_t old_gvec;
uint32_t gflags;
+ uint32_t old_gflags;
int dest_vcpu_id; /* -1 :multi-dest, non-negative: dest_vcpu_id */
};