From: Jan Beulich Date: Fri, 20 Jun 2014 08:25:33 +0000 (+0200) Subject: VT-d/qinval: make local variable used for communication with IOMMU "volatile" X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~4812 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=ceec46c02074e1b2ade0b13c3c4a2f3942ae698c;p=xen.git VT-d/qinval: make local variable used for communication with IOMMU "volatile" Without that there is - afaict - nothing preventing the compiler from putting the variable into a register for the duration of the wait loop. Signed-off-by: Jan Beulich Reviewed-by: Andrew Cooper Acked-by: Yang Zhang --- diff --git a/xen/drivers/passthrough/vtd/qinval.c b/xen/drivers/passthrough/vtd/qinval.c index ef5de99c48..fe29e826c1 100644 --- a/xen/drivers/passthrough/vtd/qinval.c +++ b/xen/drivers/passthrough/vtd/qinval.c @@ -196,7 +196,7 @@ static int queue_invalidate_wait(struct iommu *iommu, u8 iflag, u8 sw, u8 fn) { s_time_t start_time; - u32 poll_slot = QINVAL_STAT_INIT; + volatile u32 poll_slot = QINVAL_STAT_INIT; int index = -1; int ret = -1; unsigned long flags;