|
@@ -0,0 +1,70 @@
|
|
|
+From 9d3011bd1cd29f8f3841bf1b64d5ead9ed1434e8 Mon Sep 17 00:00:00 2001
|
|
|
+From: Jan Beulich <jbeulich@suse.com>
|
|
|
+Date: Fri, 19 May 2017 10:12:08 +0200
|
|
|
+Subject: [PATCH] arm: fix build with gcc 7
|
|
|
+
|
|
|
+The compiler dislikes duplicate "const", and the ones it complains
|
|
|
+about look like they we in fact meant to be placed differently.
|
|
|
+
|
|
|
+Also fix array_access_okay() (just like on x86), despite the construct
|
|
|
+being unused on ARM: -Wint-in-bool-context, enabled by default in
|
|
|
+gcc 7, doesn't like multiplication in conditional operators. "Hide" it,
|
|
|
+at the risk of the next compiler version becoming smarter and
|
|
|
+recognizing even that. (The hope is that added smartness then would
|
|
|
+also better deal with legitimate cases like the one here.) The change
|
|
|
+could have been done in access_ok(), but I think we better keep it at
|
|
|
+the place the compiler is actually unhappy about.
|
|
|
+
|
|
|
+Signed-off-by: Jan Beulich <jbeulich@suse.com>
|
|
|
+Reviewed-by: Julien Grall <julien.grall@arm.com>
|
|
|
+Release-acked-by: Julien Grall <julien.grall@arm.com>
|
|
|
+Signed-off-by: Alistair Francis <alistair.francis@xilinx.com>
|
|
|
+---
|
|
|
+ xen/arch/arm/platforms/brcm.c | 2 +-
|
|
|
+ xen/arch/arm/platforms/rcar2.c | 2 +-
|
|
|
+ xen/include/asm-arm/guest_access.h | 3 ++-
|
|
|
+ 3 files changed, 4 insertions(+), 3 deletions(-)
|
|
|
+
|
|
|
+diff --git a/xen/arch/arm/platforms/brcm.c b/xen/arch/arm/platforms/brcm.c
|
|
|
+index 6d8b5b9175..d481b2c60f 100644
|
|
|
+--- a/xen/arch/arm/platforms/brcm.c
|
|
|
++++ b/xen/arch/arm/platforms/brcm.c
|
|
|
+@@ -271,7 +271,7 @@ static __init int brcm_init(void)
|
|
|
+ return brcm_populate_plat_regs();
|
|
|
+ }
|
|
|
+
|
|
|
+-static const char const *brcm_dt_compat[] __initconst =
|
|
|
++static const char *const brcm_dt_compat[] __initconst =
|
|
|
+ {
|
|
|
+ "brcm,bcm7445d0",
|
|
|
+ NULL
|
|
|
+diff --git a/xen/arch/arm/platforms/rcar2.c b/xen/arch/arm/platforms/rcar2.c
|
|
|
+index bb25751109..df0ac84709 100644
|
|
|
+--- a/xen/arch/arm/platforms/rcar2.c
|
|
|
++++ b/xen/arch/arm/platforms/rcar2.c
|
|
|
+@@ -46,7 +46,7 @@ static int __init rcar2_smp_init(void)
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+-static const char const *rcar2_dt_compat[] __initdata =
|
|
|
++static const char *const rcar2_dt_compat[] __initconst =
|
|
|
+ {
|
|
|
+ "renesas,lager",
|
|
|
+ NULL
|
|
|
+diff --git a/xen/include/asm-arm/guest_access.h b/xen/include/asm-arm/guest_access.h
|
|
|
+index 5876988b23..421bca5f36 100644
|
|
|
+--- a/xen/include/asm-arm/guest_access.h
|
|
|
++++ b/xen/include/asm-arm/guest_access.h
|
|
|
+@@ -8,7 +8,8 @@
|
|
|
+ #define access_ok(addr,size) (1)
|
|
|
+
|
|
|
+ #define array_access_ok(addr,count,size) \
|
|
|
+- (likely(count < (~0UL/size)) && access_ok(addr,count*size))
|
|
|
++ (likely((count) < (~0UL / (size))) && \
|
|
|
++ access_ok(addr, 0 + (count) * (size)))
|
|
|
+
|
|
|
+ unsigned long raw_copy_to_guest(void *to, const void *from, unsigned len);
|
|
|
+ unsigned long raw_copy_to_guest_flush_dcache(void *to, const void *from,
|
|
|
+--
|
|
|
+2.11.0
|
|
|
+
|