|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] xen/x86: Fix compilation issue with clang 3.2
HYPERVISOR_VIRT_START is an unsigned long constant. In shadow code, Xen
compares this value with a int which is wrong.
multi.c:1981:5: error: comparison of constant 8796025913344 with expression of
type 'int' is always true [-Werror,-Wtautological-constant-out-of-range-compare]
SHADOW_FOREACH_L2E(sl2mfn, sl2e, 0, 0, v->domain, {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
multi.c:1320:18: note: expanded from macro 'SHADOW_FOREACH_L2E'
< (HYPERVISOR_VIRT_START >> SHADOW_L2_PAGETABLE_SHIFT) )
\
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Julien Grall <julien.grall@xxxxxxxxxx>
---
xen/arch/x86/mm/shadow/multi.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/xen/arch/x86/mm/shadow/multi.c b/xen/arch/x86/mm/shadow/multi.c
index a8ef75e..f2e70d2 100644
--- a/xen/arch/x86/mm/shadow/multi.c
+++ b/xen/arch/x86/mm/shadow/multi.c
@@ -1308,7 +1308,8 @@ do {
\
/* 32-bit l2 on PAE/64: four pages, touch every second entry, and avoid Xen */
#define SHADOW_FOREACH_L2E(_sl2mfn, _sl2e, _gl2p, _done, _dom, _code) \
do { \
- int _i, _j, __done = 0; \
+ unsigned long _i, _j; \
+ int __done = 0; \
int _xen = !shadow_mode_external(_dom); \
ASSERT(mfn_to_page(_sl2mfn)->u.sh.type == SH_type_l2_32_shadow);\
for ( _j = 0; _j < 4 && !__done; _j++ ) \
@@ -1335,7 +1336,7 @@ do {
\
/* PAE: if it's an l2h, don't touch Xen mappings */
#define SHADOW_FOREACH_L2E(_sl2mfn, _sl2e, _gl2p, _done, _dom, _code) \
do { \
- int _i; \
+ unsigned long _i; \
int _xen = !shadow_mode_external(_dom); \
shadow_l2e_t *_sp = sh_map_domain_page((_sl2mfn)); \
ASSERT(mfn_to_page(_sl2mfn)->u.sh.type == SH_type_l2_pae_shadow \
--
1.7.10.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |