From: Greg Kroah-Hartman Date: Fri, 29 Nov 2019 08:12:07 +0000 (+0100) Subject: drop sock-reset-dst-when-changing-sk_mark-via-setsockopt.patch from 4.14 and 4.19... X-Git-Tag: v4.4.205~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f7ac279081d2fcc0f5692a0cb93fa68d287704e6;p=thirdparty%2Fkernel%2Fstable-queue.git drop sock-reset-dst-when-changing-sk_mark-via-setsockopt.patch from 4.14 and 4.19 queues It breaks a number of runtime networking tests Signed-off-by: Greg Kroah-Hartman --- diff --git a/queue-4.14/series b/queue-4.14/series index 6aa62dbd708..10be7b3bc83 100644 --- a/queue-4.14/series +++ b/queue-4.14/series @@ -149,7 +149,6 @@ dlm-don-t-leak-kernel-pointer-to-userspace.patch vrf-mark-skb-for-multicast-or-link-local-as-enslaved.patch acpica-use-d-for-signed-int-print-formatting-instead.patch net-bcmgenet-return-correct-value-ret-from-bcmgenet_.patch -sock-reset-dst-when-changing-sk_mark-via-setsockopt.patch of-unittest-allow-base-devicetree-to-have-symbol-met.patch cfg80211-prevent-regulatory-restore-during-sta-disco.patch pinctrl-qcom-spmi-gpio-fix-gpio-hog-related-boot-iss.patch diff --git a/queue-4.14/sock-reset-dst-when-changing-sk_mark-via-setsockopt.patch b/queue-4.14/sock-reset-dst-when-changing-sk_mark-via-setsockopt.patch deleted file mode 100644 index 1d8e117909b..00000000000 --- a/queue-4.14/sock-reset-dst-when-changing-sk_mark-via-setsockopt.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 3a659cc8c48839db1b07fd5b3c55b7598cd21c25 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 8 Nov 2018 08:13:35 -0600 -Subject: sock: Reset dst when changing sk_mark via setsockopt - -From: David Barmann - -[ Upstream commit 50254256f382c56bde87d970f3d0d02fdb76ec70 ] - -When setting the SO_MARK socket option, if the mark changes, the dst -needs to be reset so that a new route lookup is performed. - -This fixes the case where an application wants to change routing by -setting a new sk_mark. If this is done after some packets have already -been sent, the dst is cached and has no effect. - -Signed-off-by: David Barmann -Reviewed-by: Eric Dumazet -Signed-off-by: David S. Miller -Signed-off-by: Sasha Levin ---- - net/core/sock.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/net/core/sock.c b/net/core/sock.c -index 7ccbcd853cbce..78c9aa310ce6b 100644 ---- a/net/core/sock.c -+++ b/net/core/sock.c -@@ -985,10 +985,12 @@ int sock_setsockopt(struct socket *sock, int level, int optname, - clear_bit(SOCK_PASSSEC, &sock->flags); - break; - case SO_MARK: -- if (!ns_capable(sock_net(sk)->user_ns, CAP_NET_ADMIN)) -+ if (!ns_capable(sock_net(sk)->user_ns, CAP_NET_ADMIN)) { - ret = -EPERM; -- else -+ } else if (val != sk->sk_mark) { - sk->sk_mark = val; -+ sk_dst_reset(sk); -+ } - break; - - case SO_RXQ_OVFL: --- -2.20.1 - diff --git a/queue-4.19/series b/queue-4.19/series index 828f04f14e8..d79035fcc2c 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -236,7 +236,6 @@ vrf-mark-skb-for-multicast-or-link-local-as-enslaved.patch clk-tegra20-turn-emc-clock-gate-into-divider.patch acpica-use-d-for-signed-int-print-formatting-instead.patch net-bcmgenet-return-correct-value-ret-from-bcmgenet_.patch -sock-reset-dst-when-changing-sk_mark-via-setsockopt.patch of-unittest-allow-base-devicetree-to-have-symbol-met.patch of-unittest-initialize-args-before-calling-of_-parse.patch tools-bpftool-pass-an-argument-to-silence-open_obj_p.patch diff --git a/queue-4.19/sock-reset-dst-when-changing-sk_mark-via-setsockopt.patch b/queue-4.19/sock-reset-dst-when-changing-sk_mark-via-setsockopt.patch deleted file mode 100644 index c530c8a0d01..00000000000 --- a/queue-4.19/sock-reset-dst-when-changing-sk_mark-via-setsockopt.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 8a070911f50356de4d5bbafae6e9a2d32740e96f Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Thu, 8 Nov 2018 08:13:35 -0600 -Subject: sock: Reset dst when changing sk_mark via setsockopt - -From: David Barmann - -[ Upstream commit 50254256f382c56bde87d970f3d0d02fdb76ec70 ] - -When setting the SO_MARK socket option, if the mark changes, the dst -needs to be reset so that a new route lookup is performed. - -This fixes the case where an application wants to change routing by -setting a new sk_mark. If this is done after some packets have already -been sent, the dst is cached and has no effect. - -Signed-off-by: David Barmann -Reviewed-by: Eric Dumazet -Signed-off-by: David S. Miller -Signed-off-by: Sasha Levin ---- - net/core/sock.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/net/core/sock.c b/net/core/sock.c -index ba4f843cdd1d1..948fd687292a6 100644 ---- a/net/core/sock.c -+++ b/net/core/sock.c -@@ -951,10 +951,12 @@ int sock_setsockopt(struct socket *sock, int level, int optname, - clear_bit(SOCK_PASSSEC, &sock->flags); - break; - case SO_MARK: -- if (!ns_capable(sock_net(sk)->user_ns, CAP_NET_ADMIN)) -+ if (!ns_capable(sock_net(sk)->user_ns, CAP_NET_ADMIN)) { - ret = -EPERM; -- else -+ } else if (val != sk->sk_mark) { - sk->sk_mark = val; -+ sk_dst_reset(sk); -+ } - break; - - case SO_RXQ_OVFL: --- -2.20.1 -