--- /dev/null
+From 77588b6ecc641068053020368f20231bc2524989 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Fri, 23 Nov 2018 12:42:42 +0100
+Subject: Revert "ipv6: set rt6i_protocol properly in the route when it is installed"
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+This reverts commit 23e983e27aaff6357bb851d91b593d83a9a6552c which is
+commit b91d532928dff2141ea9c107c3e73104d9843767 upstream.
+
+It breaks the Android networking test suite, which works fine with the
+backported patch in 4.14. So something must be off for 4.9 for this
+patch, so just revert it.
+
+Cc: Jianlin Shi <jishi@redhat.com>
+Cc: David Ahern <dsahern@gmail.com>
+Cc: Xin Long <lucien.xin@gmail.com>
+Cc: David S. Miller <davem@davemloft.net>
+Cc: Sasha Levin <sashal@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/ipv6/route.c | 11 ++++++++---
+ 1 file changed, 8 insertions(+), 3 deletions(-)
+
+--- a/net/ipv6/route.c
++++ b/net/ipv6/route.c
+@@ -2292,7 +2292,6 @@ static void rt6_do_redirect(struct dst_e
+ if (on_link)
+ nrt->rt6i_flags &= ~RTF_GATEWAY;
+
+- nrt->rt6i_protocol = RTPROT_REDIRECT;
+ nrt->rt6i_gateway = *(struct in6_addr *)neigh->primary_key;
+
+ if (ip6_ins_rt(nrt))
+@@ -2397,7 +2396,6 @@ static struct rt6_info *rt6_add_route_in
+ .fc_dst_len = prefixlen,
+ .fc_flags = RTF_GATEWAY | RTF_ADDRCONF | RTF_ROUTEINFO |
+ RTF_UP | RTF_PREF(pref),
+- .fc_protocol = RTPROT_RA,
+ .fc_nlinfo.portid = 0,
+ .fc_nlinfo.nlh = NULL,
+ .fc_nlinfo.nl_net = net,
+@@ -2450,7 +2448,6 @@ struct rt6_info *rt6_add_dflt_router(con
+ .fc_ifindex = dev->ifindex,
+ .fc_flags = RTF_GATEWAY | RTF_ADDRCONF | RTF_DEFAULT |
+ RTF_UP | RTF_EXPIRES | RTF_PREF(pref),
+- .fc_protocol = RTPROT_RA,
+ .fc_nlinfo.portid = 0,
+ .fc_nlinfo.nlh = NULL,
+ .fc_nlinfo.nl_net = dev_net(dev),
+@@ -3247,6 +3244,14 @@ static int rt6_fill_node(struct net *net
+ }
+ rtm->rtm_scope = RT_SCOPE_UNIVERSE;
+ rtm->rtm_protocol = rt->rt6i_protocol;
++ if (rt->rt6i_flags & RTF_DYNAMIC)
++ rtm->rtm_protocol = RTPROT_REDIRECT;
++ else if (rt->rt6i_flags & RTF_ADDRCONF) {
++ if (rt->rt6i_flags & (RTF_DEFAULT | RTF_ROUTEINFO))
++ rtm->rtm_protocol = RTPROT_RA;
++ else
++ rtm->rtm_protocol = RTPROT_KERNEL;
++ }
+
+ if (rt->rt6i_flags & RTF_CACHE)
+ rtm->rtm_flags |= RTM_F_CLONED;