aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/hvm/vlapic.h
diff options
context:
space:
mode:
authorKeir Fraser <keir@xen.org>2010-10-20 17:26:51 +0100
committerKeir Fraser <keir@xen.org>2010-10-20 17:26:51 +0100
commit0780df2a52fe136496ffc250e6dbca07b95b904c (patch)
tree0051a62155ad8fcc442b8b674bd9d440d775ee02 /xen/include/asm-x86/hvm/vlapic.h
parentda7abb1417a92981a356abcb3a8fa85c97dfff31 (diff)
downloadxen-0780df2a52fe136496ffc250e6dbca07b95b904c.tar.gz
xen-0780df2a52fe136496ffc250e6dbca07b95b904c.tar.bz2
xen-0780df2a52fe136496ffc250e6dbca07b95b904c.zip
x86 hvm: When sending INIT-SIPI IPIs, pause the sending vcpu until the
asynchronous tasklet completes its work. This is a little bit cleaner than busy-spinning in a retry loop. Signed-off-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/include/asm-x86/hvm/vlapic.h')
-rw-r--r--xen/include/asm-x86/hvm/vlapic.h7
1 files changed, 5 insertions, 2 deletions
diff --git a/xen/include/asm-x86/hvm/vlapic.h b/xen/include/asm-x86/hvm/vlapic.h
index eda970f780..905fff8dae 100644
--- a/xen/include/asm-x86/hvm/vlapic.h
+++ b/xen/include/asm-x86/hvm/vlapic.h
@@ -59,8 +59,11 @@ struct vlapic {
s_time_t timer_last_update;
struct page_info *regs_page;
/* INIT-SIPI-SIPI work gets deferred to a tasklet. */
- uint32_t init_sipi_tasklet_icr;
- struct tasklet init_sipi_tasklet;
+ struct {
+ struct vcpu *target;
+ uint32_t icr;
+ struct tasklet tasklet;
+ } init_sipi;
};
static inline uint32_t vlapic_get_reg(struct vlapic *vlapic, uint32_t reg)