dccp: Evaluate ip_hdr() only once in dccp_v4_route_skb().
authorDavid S. Miller <davem@davemloft.net>
Thu, 1 Dec 2011 18:28:34 +0000 (13:28 -0500)
committerDavid S. Miller <davem@davemloft.net>
Thu, 1 Dec 2011 18:28:34 +0000 (13:28 -0500)
This also works around a bogus gcc warning generated by an
upcoming patch from Eric Dumazet that rearranges the layout
of struct flowi4.

Signed-off-by: David S. Miller <davem@davemloft.net>
net/dccp/ipv4.c

index 3f4e5414c8e5200711839e8847437809047cb778..1c67fe8ff90d27f32779d4fc674dbc25083393ed 100644 (file)
@@ -474,10 +474,11 @@ static struct dst_entry* dccp_v4_route_skb(struct net *net, struct sock *sk,
                                           struct sk_buff *skb)
 {
        struct rtable *rt;
+       const struct iphdr *iph = ip_hdr(skb);
        struct flowi4 fl4 = {
                .flowi4_oif = skb_rtable(skb)->rt_iif,
-               .daddr = ip_hdr(skb)->saddr,
-               .saddr = ip_hdr(skb)->daddr,
+               .daddr = iph->saddr,
+               .saddr = iph->daddr,
                .flowi4_tos = RT_CONN_FLAGS(sk),
                .flowi4_proto = sk->sk_protocol,
                .fl4_sport = dccp_hdr(skb)->dccph_dport,