[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH] compat: Allow CHECK_FIELD_COMMON_ macro deal with fields that are handles
CHECK_FIELD_COMMON_ and CHECK_FIELD_COMMON macros verify whether the field in 64- and 32-bit versions of a structure is at the same offset by comparing address of the field in both structures. However, if the field itself is a handle, it is either typedef struct { <type> *p; } __guest_handle_<type> or typedef struct { compat_ptr_t c; <type> *_[0] __attribute__((__packed__)); } __compat_handle_<type> and compiler will warn that we are trying to compare addresses of different structures. By casting the addresses to (void *) we will avoid this warning. Signed-off-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx> --- xen/include/xen/compat.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xen/include/xen/compat.h b/xen/include/xen/compat.h index ca60699..6de2d14 100644 --- a/xen/include/xen/compat.h +++ b/xen/include/xen/compat.h @@ -158,14 +158,14 @@ static inline int name(xen_ ## t ## _t *x, compat_ ## t ## _t *c) \ { \ BUILD_BUG_ON(offsetof(xen_ ## t ## _t, f) != \ offsetof(compat_ ## t ## _t, f)); \ - return &x->f == &c->f; \ + return (void *)&x->f == (void *)&c->f; \ } #define CHECK_FIELD_COMMON_(k, name, n, f) \ static inline int name(k xen_ ## n *x, k compat_ ## n *c) \ { \ BUILD_BUG_ON(offsetof(k xen_ ## n, f) != \ offsetof(k compat_ ## n, f)); \ - return &x->f == &c->f; \ + return (void *)&x->f == (void *)&c->f; \ } #define CHECK_FIELD(t, f) \ -- 1.8.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |