From: Maciej Żenczykowski <m...@google.com>

(allows for better compiler optimization)

Signed-off-by: Maciej Żenczykowski <m...@google.com>
---
 net/ipv4/route.c | 21 +++++++++------------
 1 file 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)
-- 
2.19.0.605.g01d371f741-goog

Reply via email to