diff --git a/include/net/route.h b/include/net/route.h
index f88429c..b242885 100644
--- a/include/net/route.h
+++ b/include/net/route.h
@@ -149,17 +149,12 @@
 						   __be16 dport, __be16 sport,
 						   __u8 proto, __u8 tos, int oif)
 {
-	struct flowi4 fl4 = {
-		.flowi4_oif = oif,
-		.flowi4_flags = sk ? inet_sk_flowi_flags(sk) : 0,
-		.flowi4_mark = sk ? sk->sk_mark : 0,
-		.daddr = daddr,
-		.saddr = saddr,
-		.flowi4_tos = tos,
-		.flowi4_proto = proto,
-		.fl4_dport = dport,
-		.fl4_sport = sport,
-	};
+	struct flowi4 fl4;
+
+	flowi4_init_output(&fl4, oif, sk ? sk->sk_mark : 0, tos,
+			   RT_SCOPE_UNIVERSE, proto,
+			   sk ? inet_sk_flowi_flags(sk) : 0,
+			   daddr, saddr, dport, sport);
 	if (sk)
 		security_sk_classify_flow(sk, flowi4_to_flowi(&fl4));
 	return ip_route_output_flow(net, &fl4, sk);
@@ -229,25 +224,21 @@
 					      __be16 sport, __be16 dport,
 					      struct sock *sk, bool can_sleep)
 {
-	struct flowi4 fl4 = {
-		.flowi4_oif = oif,
-		.flowi4_mark = sk->sk_mark,
-		.daddr = dst,
-		.saddr = src,
-		.flowi4_tos = tos,
-		.flowi4_proto = protocol,
-		.fl4_sport = sport,
-		.fl4_dport = dport,
-	};
 	struct net *net = sock_net(sk);
 	struct rtable *rt;
+	struct flowi4 fl4;
+	__u8 flow_flags;
 
+	flow_flags = 0;
 	if (inet_sk(sk)->transparent)
-		fl4.flowi4_flags |= FLOWI_FLAG_ANYSRC;
+		flow_flags |= FLOWI_FLAG_ANYSRC;
 	if (protocol == IPPROTO_TCP)
-		fl4.flowi4_flags |= FLOWI_FLAG_PRECOW_METRICS;
+		flow_flags |= FLOWI_FLAG_PRECOW_METRICS;
 	if (can_sleep)
-		fl4.flowi4_flags |= FLOWI_FLAG_CAN_SLEEP;
+		flow_flags |= FLOWI_FLAG_CAN_SLEEP;
+
+	flowi4_init_output(&fl4, oif, sk->sk_mark, tos, RT_SCOPE_UNIVERSE,
+			   protocol, flow_flags, dst, src, dport, sport);
 
 	if (!dst || !src) {
 		rt = __ip_route_output_key(net, &fl4);
@@ -267,20 +258,17 @@
 					       __be16 dport, struct sock *sk)
 {
 	if (sport != orig_sport || dport != orig_dport) {
-		struct flowi4 fl4 = {
-			.flowi4_oif = rt->rt_oif,
-			.flowi4_mark = rt->rt_mark,
-			.daddr = rt->rt_dst,
-			.saddr = rt->rt_src,
-			.flowi4_tos = rt->rt_tos,
-			.flowi4_proto = protocol,
-			.fl4_sport = sport,
-			.fl4_dport = dport
-		};
+		struct flowi4 fl4;
+		__u8 flow_flags;
+
+		flow_flags = 0;
 		if (inet_sk(sk)->transparent)
-			fl4.flowi4_flags |= FLOWI_FLAG_ANYSRC;
+			flow_flags |= FLOWI_FLAG_ANYSRC;
 		if (protocol == IPPROTO_TCP)
-			fl4.flowi4_flags |= FLOWI_FLAG_PRECOW_METRICS;
+			flow_flags |= FLOWI_FLAG_PRECOW_METRICS;
+		flowi4_init_output(&fl4, rt->rt_oif, rt->rt_mark, rt->rt_tos,
+				   RT_SCOPE_UNIVERSE, protocol, flow_flags,
+				   rt->rt_dst, rt->rt_src, dport, sport);
 		ip_rt_put(rt);
 		security_sk_classify_flow(sk, flowi4_to_flowi(&fl4));
 		return ip_route_output_flow(sock_net(sk), &fl4, sk);
