diff options
author | Maciej Żenczykowski <maze@google.com> | 2018-09-29 23:44:46 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-10-02 16:12:39 -0700 |
commit | e351bb6227fbe2bb5da6f38a4cf5bd18810b0557 (patch) | |
tree | 6bb077d088336d8e20e012aaf0592bfb1a9e6c39 /net/ipv4 | |
parent | d793fb46822ff7408a1767313ef6b12e811baa55 (diff) |
net: ip_rt_get_source() - use new style struct initializer instead of memset
(allows for better compiler optimization)
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Reviewed-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/route.c | 21 |
1 files changed, 9 insertions, 12 deletions
diff --git a/net/ipv4/route.c b/net/ipv4/route.c index dce2ed66ebe1..02482b71498b 100644 --- a/net/ipv4/route.c +++ b/net/ipv4/route.c @@ -1217,18 +1217,15 @@ void ip_rt_get_source(u8 *addr, struct sk_buff *skb, struct rtable *rt) src = ip_hdr(skb)->saddr; else { struct fib_result res; - struct flowi4 fl4; - struct iphdr *iph; - - iph = ip_hdr(skb); - - memset(&fl4, 0, sizeof(fl4)); - fl4.daddr = iph->daddr; - fl4.saddr = iph->saddr; - fl4.flowi4_tos = RT_TOS(iph->tos); - fl4.flowi4_oif = rt->dst.dev->ifindex; - fl4.flowi4_iif = skb->dev->ifindex; - fl4.flowi4_mark = skb->mark; + struct iphdr *iph = ip_hdr(skb); + struct flowi4 fl4 = { + .daddr = iph->daddr, + .saddr = iph->saddr, + .flowi4_tos = RT_TOS(iph->tos), + .flowi4_oif = rt->dst.dev->ifindex, + .flowi4_iif = skb->dev->ifindex, + .flowi4_mark = skb->mark, + }; rcu_read_lock(); if (fib_lookup(dev_net(rt->dst.dev), &fl4, &res, 0) == 0) |