summaryrefslogtreecommitdiff
path: root/net/ipv6/tcp_ipv6.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
-rw-r--r--net/ipv6/tcp_ipv6.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 578ab6305c3f..0ce52d46e4f8 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -348,11 +348,20 @@ failure:
static void tcp_v6_mtu_reduced(struct sock *sk)
{
struct dst_entry *dst;
+ u32 mtu;
if ((1 << sk->sk_state) & (TCPF_LISTEN | TCPF_CLOSE))
return;
- dst = inet6_csk_update_pmtu(sk, tcp_sk(sk)->mtu_info);
+ mtu = READ_ONCE(tcp_sk(sk)->mtu_info);
+
+ /* Drop requests trying to increase our current mss.
+ * Check done in __ip6_rt_update_pmtu() is too late.
+ */
+ if (tcp_mtu_to_mss(sk, mtu) >= tcp_sk(sk)->mss_cache)
+ return;
+
+ dst = inet6_csk_update_pmtu(sk, mtu);
if (!dst)
return;
@@ -433,6 +442,8 @@ static int tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
}
if (type == ICMPV6_PKT_TOOBIG) {
+ u32 mtu = ntohl(info);
+
/* We are not interested in TCP_LISTEN and open_requests
* (SYN-ACKs send out by Linux are always <576bytes so
* they should go through unfragmented).
@@ -443,7 +454,11 @@ static int tcp_v6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
if (!ip6_sk_accept_pmtu(sk))
goto out;
- tp->mtu_info = ntohl(info);
+ if (mtu < IPV6_MIN_MTU)
+ goto out;
+
+ WRITE_ONCE(tp->mtu_info, mtu);
+
if (!sock_owned_by_user(sk))
tcp_v6_mtu_reduced(sk);
else if (!test_and_set_bit(TCP_MTU_REDUCED_DEFERRED,
@@ -540,7 +555,7 @@ static int tcp_v6_send_synack(const struct sock *sk, struct dst_entry *dst,
opt = ireq->ipv6_opt;
if (!opt)
opt = rcu_dereference(np->opt);
- err = ip6_xmit(sk, skb, fl6, sk->sk_mark, opt,
+ err = ip6_xmit(sk, skb, fl6, skb->mark ? : sk->sk_mark, opt,
tclass, sk->sk_priority);
rcu_read_unlock();
err = net_xmit_eval(err);
fice-4-2-5'>libreoffice-4-2-5 Unnamed repository; edit this file to name it for gitweb.root
summaryrefslogtreecommitdiff
AgeCommit message (Expand)AuthorFilesLines
2024-07-08Version 24.8.0.1, tag libreoffice-24.8.0.1libreoffice-24.8.0.1Christian Lohmaier0-0/+0
2024-07-08update translations for 24.8.0 rc1/masterChristian Lohmaier752-13300/+15854
2024-06-28update translations for 24.8/masterChristian Lohmaier1401-55124/+51822
2024-06-28update translations for 24-8/masterChristian Lohmaier696-19429/+27757
2024-06-17update translations for 24-8/masterChristian Lohmaier888-57427/+58764
2024-06-11Branch libreoffice-24-8Christian Lohmaier0-0/+0
2024-06-11update translations for master / 24.8.0 beta1libreoffice-24-8-branch-pointChristian Lohmaier1034-10831/+33947
2024-06-06update translations for master / 24.8.0 beta1Christian Lohmaier897-61626/+70322
2024-06-03update translations for masterChristian Lohmaier1417-43940/+50260
2024-06-01add files for Sundanese (sun)Christian Lohmaier158-0/+274687
2024-06-01update translations for masterChristian Lohmaier1170-22698/+27401
2024-06-01Fix "\n" mismatch in Slovenian translationJulien Nabet1-3/+3
2024-05-31Updated Slovenian translationMartin Srebotnjak63-9627/+16272
2024-05-23update translations for masterChristian Lohmaier1646-115717/+156491
2024-05-14update translations for masterChristian Lohmaier1752-153873/+229855
2024-05-01tdf#151830: Fix RID_SVXSTR_TEXTENCODING_TABLE nb translationsMike Kaganski1-52/+52
2024-04-30update translations for masterChristian Lohmaier1576-148583/+131351
2024-04-22update translations for masterChristian Lohmaier1913-105941/+117841
2024-04-15update translations for masterChristian Lohmaier1243-83895/+99069
2024-04-09update translations for masterChristian Lohmaier1278-92518/+96935
2024-04-02update translations for masterChristian Lohmaier