From: Stephen Hemminger
On Fri, 11 Jul 2014 18:59:49 +0200
Thomas Graf [off-list ref] wrote:
quoted
@@ -1617,7 +1646,9 @@ static int vxlan6_xmit_skb(struct vxlan_sock *vs,
}
vxh = (struct vxlanhdr *) __skb_push(skb, sizeof(*vxh));
- vxh->vx_flags = htonl(VXLAN_FLAGS);
+ vxlan_flags(vxh) = VXLAN_FLAG_VNI;
+ vxh->vx_reserved1 = 0;
+ vxh->vx_reserved2 = 0;
vxh->vx_vni = vni;
Okay, but initializing bitfields generates crappy code.
Can we just alias and do one assignment.
If you write to all the bitfields gcc ought to manage to do a single write.
If it doesn't then all the bitfields should be ripped out :-)
David