[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] xen/arm: Fix ARM build following c/s 11c397c
Hi Andrew, On 08/02/17 19:10, Andrew Cooper wrote: c/s 11c397c broke the ARM build by introducing a common ACCESS_ONCE() which is different to the definiton in smmu.c The SMMU code included a scalar typecheck, which is worth keeping in the common case, given ACCESS_ONCE()'s restrictions. However, express the typecheck differently so as to avoid Coverity compliants about unused s/compliants/complaint/ variables. OOI, the variable is marked as "__maybe_unused", so why Coverity would complaint? Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Julien Grall <julien.grall@xxxxxxx> Cheers, --- CC: Jan Beulich <JBeulich@xxxxxxxx> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx> CC: Julien Grall <julien.grall@xxxxxxx> --- xen/drivers/passthrough/arm/smmu.c | 10 ---------- xen/include/xen/lib.h | 5 ++++- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/xen/drivers/passthrough/arm/smmu.c b/xen/drivers/passthrough/arm/smmu.c index cf8b8b8..06c0a45 100644 --- a/xen/drivers/passthrough/arm/smmu.c +++ b/xen/drivers/passthrough/arm/smmu.c @@ -198,16 +198,6 @@ typedef paddr_t phys_addr_t; #define VA_BITS 0 /* Only used for configuring stage-1 input size */ -/* The macro ACCESS_ONCE start to be replaced in Linux in favor of - * {READ, WRITE}_ONCE. Rather than introducing in the common code, keep a - * version here. We will have to drop it when the SMMU code in Linux will - * switch to {READ, WRITE}_ONCE. - */ -#define __ACCESS_ONCE(x) ({ \ - __maybe_unused typeof(x) __var = 0; \ - (volatile typeof(x) *)&(x); }) -#define ACCESS_ONCE(x) (*__ACCESS_ONCE(x)) - #define MODULE_DEVICE_TABLE(type, name) #define module_param_named(name, value, type, perm) #define MODULE_PARM_DESC(_parm, desc) diff --git a/xen/include/xen/lib.h b/xen/include/xen/lib.h index 1976e4b..995a85a 100644 --- a/xen/include/xen/lib.h +++ b/xen/include/xen/lib.h @@ -56,7 +56,10 @@ #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]) + __must_be_array(x)) -#define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x)) +#define __ACCESS_ONCE(x) ({ \ + (void)(typeof(x))0; /* Scalar typecheck. */ \ + (volatile typeof(x) *)&(x); }) +#define ACCESS_ONCE(x) (*__ACCESS_ONCE(x)) #define MASK_EXTR(v, m) (((v) & (m)) / ((m) & -(m))) #define MASK_INSR(v, m) (((v) * ((m) & -(m))) & (m)) -- Julien Grall _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |