summaryrefslogtreecommitdiffstats
path: root/net/ipv4/route.c
diff options
context:
space:
mode:
authorMaciej Żenczykowski <maze@google.com>2018-09-29 23:44:46 -0700
committerDavid S. Miller <davem@davemloft.net>2018-10-02 16:12:39 -0700
commite351bb6227fbe2bb5da6f38a4cf5bd18810b0557 (patch)
tree6bb077d088336d8e20e012aaf0592bfb1a9e6c39 /net/ipv4/route.c
parentd793fb46822ff7408a1767313ef6b12e811baa55 (diff)
downloadlinux-e351bb6227fbe2bb5da6f38a4cf5bd18810b0557.tar.gz
linux-e351bb6227fbe2bb5da6f38a4cf5bd18810b0557.tar.bz2
linux-e351bb6227fbe2bb5da6f38a4cf5bd18810b0557.zip
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/route.c')
-rw-r--r--net/ipv4/route.c21
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)