[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 04/12] slirp: add in6_multicast() and use it ins
From: |
Thomas Huth |
Subject: |
Re: [Qemu-devel] [PATCH 04/12] slirp: add in6_multicast() and use it instead of IN6_IS_ADDR_MULTICAST() |
Date: |
Mon, 8 Jan 2018 21:10:52 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 |
On 08.01.2018 18:28, Philippe Mathieu-Daudé wrote:
> Host: Mac OS 10.12.5
> Compiler: Apple LLVM version 8.1.0 (clang-802.0.42)
>
> slirp/ip6_icmp.c:79:32: warning: taking address of packed member 'ip_src'
> of class or
> structure 'ip6' may result in an unaligned pointer value
> [-Waddress-of-packed-member]
> if (IN6_IS_ADDR_MULTICAST(&ip->ip_src) ||
> ^~~~~~~~~~
> /usr/include/netinet6/in6.h:299:36: note: expanded from macro
> 'IN6_IS_ADDR_MULTICAST'
> #define IN6_IS_ADDR_MULTICAST(a) ((a)->s6_addr[0] == 0xff)
> ^
>
> Reported-by: John Arbuckle <address@hidden>
> Signed-off-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> slirp/ip6.h | 5 +++++
> slirp/ip6_icmp.c | 10 +++++-----
> slirp/ndp_table.c | 4 ++--
> 3 files changed, 12 insertions(+), 7 deletions(-)
>
> diff --git a/slirp/ip6.h b/slirp/ip6.h
> index b1bea43b3c..6c5d4eeaa3 100644
> --- a/slirp/ip6.h
> +++ b/slirp/ip6.h
> @@ -93,6 +93,11 @@ static inline bool in6_equal_mach(const struct in6_addr *a,
> #define in6_zero(a)\
> (in6_equal(a, &(struct in6_addr)ZERO_ADDR))
I think you should put a comment here to say why we need our own
function and can not use the IN6_IS_ADDR_MULTICAST macro instead -
otherwise people might be confused when looking at this code in a year
or two. (and now I've also understood why you're poisining the macros in
the next patch ... a comment in the code there would certainly not hurt
either).
> +static inline bool in6_multicast(const struct in6_addr *a)
> +{
> + return a->s6_addr[0] == 0xff;
> +}
> +
> /* Compute emulated host MAC address from its ipv6 address */
> static inline void in6_compute_ethaddr(struct in6_addr ip,
> uint8_t eth[ETH_ALEN])
Thomas
- [Qemu-devel] [PATCH 00/12] add HOST_SUPPORTS_UNALIGNED_ACCESS, reduce slirp warnings, Philippe Mathieu-Daudé, 2018/01/08
- [Qemu-devel] [PATCH 01/12] slirp: remove QEMU_PACKED from structures with don't require it, Philippe Mathieu-Daudé, 2018/01/08
- [Qemu-devel] [PATCH 02/12] slirp: struct icmp/ethhdr ARE packed, Philippe Mathieu-Daudé, 2018/01/08
- [Qemu-devel] [PATCH 03/12] slirp: avoid IN6_IS_ADDR_UNSPECIFIED(), rather use in6_zero(), Philippe Mathieu-Daudé, 2018/01/08
- [Qemu-devel] [PATCH 04/12] slirp: add in6_multicast() and use it instead of IN6_IS_ADDR_MULTICAST(), Philippe Mathieu-Daudé, 2018/01/08
- [Qemu-devel] [PATCH 05/12] slirp: poison IN6_*_ADDR_*() macros to avoid them, Philippe Mathieu-Daudé, 2018/01/08
- [Qemu-devel] [PATCH 06/12] slirp: remove unused header, Philippe Mathieu-Daudé, 2018/01/08
- [Qemu-devel] [PATCH 07/12] slirp: remove unnecessary, Philippe Mathieu-Daudé, 2018/01/08