Thread (6 messages) flat view 6 messages, 3 authors, 2016-10-03

Re: net: vrf: Handle ipv6 multicast and link-local addresses

From: Geert Uytterhoeven <geert@linux-m68k.org>
Date: 2016-08-03 20:29:34
Also in: lkml

On Wed, Aug 3, 2016 at 10:11 PM, David Ahern [off-list ref] wrote:
On 8/3/16 1:57 PM, Geert Uytterhoeven wrote:
quoted
quoted
+static void vrf_ip6_input_dst(struct sk_buff *skb, struct net_device *vrf_dev,
quoted
+                             int ifindex)
+{
+       const struct ipv6hdr *iph = ipv6_hdr(skb);
+       struct flowi6 fl6 = {
+               .daddr          = iph->daddr,
+               .saddr          = iph->saddr,
+               .flowlabel      = ip6_flowinfo(iph),
The above assignment causes the following compiler warning with
m68k-linux-gnu-gcc-4.1:

    drivers/net/vrf.c: In function ‘vrf_ip6_input_dst’:
    drivers/net/vrf.c:870: warning: initialized field with
side-effects overwritten
    drivers/net/vrf.c:870: warning: (near initialization for ‘fl6’)

Unfortunately I have no idea what it means, nor do I see what's wrong
with the code.
no idea. Fields are initialized once and left and right data types are the same.

Can you remove one line at a time? Line 870 is ".flowi6_proto   = iph->nexthdr," but all of the flowi6 macros are unique references to unique fields in flowi_common. The flowlabel line you point out is a unique field as well.
The only thing that seems to matter is assigning the result of the call to
ip6_flowinfo() to .flowlabel. Assigning a constant makes the warning go away.

Yeah, the 870 line number is funny, as it doesn't point to the offending line.
Can you run pahole on file that did compile? e.g.,

pahole -C 'flowi6' net/ipv6/route.o

and get the common struct too:

pahole -C 'flowi_common' net/ipv6/route.o
No output. Perhaps pahole doesn't play well with cross-compiling?

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help