aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2021-02-24 22:36:57 +0900
committerKazuki Yamaguchi <k@rhe.jp>2021-05-20 14:26:52 +0900
commitc7399801604673ff2c4ebae5970d01c28faed339 (patch)
tree4c5f1406c19cfb284456d81fede231e55be903ee
parent73e1ae0aa32bd603545df6c1283a9c22e891d445 (diff)
downloadlinux-ky/pu-5.12.tar.gz
net: add comments to code where MTU is handed incorrectlyv5.12.5.5.20210520ky/pu-5.12
But I'm not going to fix them - it's unlikely I actually hit these code paths.
-rw-r--r--net/ipv4/ip_output.c1
-rw-r--r--net/ipv4/raw.c1
-rw-r--r--net/ipv6/raw.c1
-rw-r--r--net/ipv6/route.c2
4 files changed, 5 insertions, 0 deletions
diff --git a/net/ipv4/ip_output.c b/net/ipv4/ip_output.c
index 3aab53beb4ea..7b81e8a6f071 100644
--- a/net/ipv4/ip_output.c
+++ b/net/ipv4/ip_output.c
@@ -1264,6 +1264,7 @@ static int ip_setup_cork(struct sock *sk, struct inet_cork *cork,
cork->addr = ipc->addr;
}
+ /* XXX: MTU */
cork->fragsize = ip_sk_use_pmtu(sk) ?
dst_mtu(&rt->dst) : READ_ONCE(rt->dst.dev->mtu);
diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
index 50a73178d63a..331197f08497 100644
--- a/net/ipv4/raw.c
+++ b/net/ipv4/raw.c
@@ -355,6 +355,7 @@ static int raw_send_hdrinc(struct sock *sk, struct flowi4 *fl4,
struct rtable *rt = *rtp;
int hlen, tlen;
+ /* XXX: MTU */
if (length > rt->dst.dev->mtu) {
ip_local_error(sk, EMSGSIZE, fl4->daddr, inet->inet_dport,
rt->dst.dev->mtu);
diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
index bf3646b57c68..16add46f4b07 100644
--- a/net/ipv6/raw.c
+++ b/net/ipv6/raw.c
@@ -628,6 +628,7 @@ static int rawv6_send_hdrinc(struct sock *sk, struct msghdr *msg, int length,
int hlen = LL_RESERVED_SPACE(rt->dst.dev);
int tlen = rt->dst.dev->needed_tailroom;
+ /* XXX: MTU */
if (length > rt->dst.dev->mtu) {
ipv6_local_error(sk, EMSGSIZE, fl6, rt->dst.dev->mtu);
return -EMSGSIZE;
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index bf41cd7ff368..6f100f25df6d 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -1988,6 +1988,7 @@ static bool rt6_mtu_change_route_allowed(struct inet6_dev *idev,
if (dst_mtu(&rt->dst) >= mtu)
return true;
+ /* XXX: MTU */
if (dst_mtu(&rt->dst) == idev->cnf.mtu6)
return true;
@@ -4786,6 +4787,7 @@ static int fib6_nh_mtu_change(struct fib6_nh *nh, void *_arg)
struct inet6_dev *idev = __in6_dev_get(arg->dev);
u32 mtu = f6i->fib6_pmtu;
+ /* XXX: MTU */
if (mtu >= arg->mtu ||
(mtu < arg->mtu && mtu == idev->cnf.mtu6))
fib6_metric_set(f6i, RTAX_MTU, arg->mtu);