]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.9-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Nov 2018 11:44:45 +0000 (12:44 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Nov 2018 11:44:45 +0000 (12:44 +0100)
added patches:
revert-ipv6-set-rt6i_protocol-properly-in-the-route-when-it.patch

queue-4.9/revert-ipv6-set-rt6i_protocol-properly-in-the-route-when-it.patch [new file with mode: 0644]
queue-4.9/series

diff --git a/queue-4.9/revert-ipv6-set-rt6i_protocol-properly-in-the-route-when-it.patch b/queue-4.9/revert-ipv6-set-rt6i_protocol-properly-in-the-route-when-it.patch
new file mode 100644 (file)
index 0000000..86270a5
--- /dev/null
@@ -0,0 +1,66 @@
+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;
index 88632629dfe1f48f63aee722b4d4523de7305084..2bf68e5268e9b83d2f0d2f3c5203c666681e087b 100644 (file)
@@ -1 +1,2 @@
 revert-x86-speculation-enable-cross-hyperthread-spectre-v2.patch
+revert-ipv6-set-rt6i_protocol-properly-in-the-route-when-it.patch