From: Andrew Cooper Date: Wed, 16 Aug 2017 17:07:27 +0000 (+0100) Subject: xen/x86: Replace mandatory barriers with compiler barriers X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~1459 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d0291f3391ab34b34092fcdc56abd8153cbe4579;p=xen.git xen/x86: Replace mandatory barriers with compiler barriers In this case, rmb() is being used for its compiler barrier property. Replace it with an explicit barrer() and comment, to avoid it becoming an unnecessary lfence instruction (when rmb() gets fixed) or looking like an SMP issue. Signed-off-by: Andrew Cooper Reviewed-by: Jan Beulich --- diff --git a/xen/drivers/passthrough/amd/iommu_init.c b/xen/drivers/passthrough/amd/iommu_init.c index a459e99fb0..474992a75a 100644 --- a/xen/drivers/passthrough/amd/iommu_init.c +++ b/xen/drivers/passthrough/amd/iommu_init.c @@ -558,7 +558,7 @@ static void parse_event_log_entry(struct amd_iommu *iommu, u32 entry[]) return; } udelay(1); - rmb(); + barrier(); /* Prevent hoisting of the entry[] read. */ code = get_field_from_reg_u32(entry[1], IOMMU_EVENT_CODE_MASK, IOMMU_EVENT_CODE_SHIFT); } @@ -663,7 +663,7 @@ void parse_ppr_log_entry(struct amd_iommu *iommu, u32 entry[]) return; } udelay(1); - rmb(); + barrier(); /* Prevent hoisting of the entry[] read. */ code = get_field_from_reg_u32(entry[1], IOMMU_PPR_LOG_CODE_MASK, IOMMU_PPR_LOG_CODE_SHIFT); }