mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
network: selectively disable -Wcast-align in virNetDevParseDadStatus
Commit 0f7436ca54
"network: wait for DAD to finish for bridge IPv6 addresses"
results in:
CC util/libvirt_util_la-virnetdevmacvlan.lo
util/virnetdev.c: In function 'virNetDevParseDadStatus':
util/virnetdev.c:1319:188: error: cast increases required alignment of target type [-Werror=cast-align]
util/virnetdev.c:1332:41: error: cast increases required alignment of target type [-Werror=cast-align]
util/virnetdev.c:1334:92: error: cast increases required alignment of target type [-Werror=cast-align]
cc1: all warnings being treated as errors
on at least ARM platforms.
The three macros involved (NLMSG_NEXT, IFA_RTA and RTA_NEXT) all appear to
correctly take care of alignment, therefore suppress Wcast-align around their
uses.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Maxim Perevedentsev <mperevedentsev@virtuozzo.com>
Cc: Laine Stump <laine@laine.org>
Cc: Dario Faggioli <dario.faggioli@citrix.com>
Cc: Jim Fehlig <jfehlig@suse.com>
This commit is contained in:
parent
bd205a9036
commit
af2954ae71
@ -1316,7 +1316,10 @@ virNetDevParseDadStatus(struct nlmsghdr *nlh, int len,
|
|||||||
struct rtattr *rtattr_ptr;
|
struct rtattr *rtattr_ptr;
|
||||||
size_t i;
|
size_t i;
|
||||||
struct in6_addr *addr;
|
struct in6_addr *addr;
|
||||||
|
|
||||||
|
VIR_WARNINGS_NO_CAST_ALIGN
|
||||||
for (; NLMSG_OK(nlh, len); nlh = NLMSG_NEXT(nlh, len)) {
|
for (; NLMSG_OK(nlh, len); nlh = NLMSG_NEXT(nlh, len)) {
|
||||||
|
VIR_WARNINGS_RESET
|
||||||
if (NLMSG_PAYLOAD(nlh, 0) < sizeof(struct ifaddrmsg)) {
|
if (NLMSG_PAYLOAD(nlh, 0) < sizeof(struct ifaddrmsg)) {
|
||||||
/* Message without payload is the last one. */
|
/* Message without payload is the last one. */
|
||||||
break;
|
break;
|
||||||
@ -1329,9 +1332,11 @@ virNetDevParseDadStatus(struct nlmsghdr *nlh, int len,
|
|||||||
}
|
}
|
||||||
|
|
||||||
ifaddrmsg_len = IFA_PAYLOAD(nlh);
|
ifaddrmsg_len = IFA_PAYLOAD(nlh);
|
||||||
|
VIR_WARNINGS_NO_CAST_ALIGN
|
||||||
rtattr_ptr = (struct rtattr *) IFA_RTA(ifaddrmsg_ptr);
|
rtattr_ptr = (struct rtattr *) IFA_RTA(ifaddrmsg_ptr);
|
||||||
for (; RTA_OK(rtattr_ptr, ifaddrmsg_len);
|
for (; RTA_OK(rtattr_ptr, ifaddrmsg_len);
|
||||||
rtattr_ptr = RTA_NEXT(rtattr_ptr, ifaddrmsg_len)) {
|
rtattr_ptr = RTA_NEXT(rtattr_ptr, ifaddrmsg_len)) {
|
||||||
|
VIR_WARNINGS_RESET
|
||||||
if (RTA_PAYLOAD(rtattr_ptr) != sizeof(struct in6_addr)) {
|
if (RTA_PAYLOAD(rtattr_ptr) != sizeof(struct in6_addr)) {
|
||||||
/* No address: ignore. */
|
/* No address: ignore. */
|
||||||
continue;
|
continue;
|
||||||
|
Loading…
Reference in New Issue
Block a user