Commit 294e2ad6 authored by Herbert Xu's avatar Herbert Xu Committed by David S. Miller

[NET]: Replace dst_pmtu with dst_mtu

This patch replaces most of the other uses of dst_pmtu with dst_mtu.
As far as I can tell these are either identical because dst->path == dst,
or they're a straightforward replacement of (the slightly incorrect)
dst_pmtu(dst) - dst->header_Len with dst_mtu(dst).
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 4230b1be
...@@ -1868,7 +1868,7 @@ static inline unsigned int dn_current_mss(struct sock *sk, int flags) ...@@ -1868,7 +1868,7 @@ static inline unsigned int dn_current_mss(struct sock *sk, int flags)
/* This works out the maximum size of segment we can send out */ /* This works out the maximum size of segment we can send out */
if (dst) { if (dst) {
u32 mtu = dst_pmtu(dst); u32 mtu = dst_mtu(dst);
mss_now = min_t(int, dn_mss_from_pmtu(dst->dev, mtu), mss_now); mss_now = min_t(int, dn_mss_from_pmtu(dst->dev, mtu), mss_now);
} }
......
...@@ -817,7 +817,7 @@ static int dn_rt_set_next_hop(struct dn_route *rt, struct dn_fib_res *res) ...@@ -817,7 +817,7 @@ static int dn_rt_set_next_hop(struct dn_route *rt, struct dn_fib_res *res)
if (rt->u.dst.metrics[RTAX_MTU-1] == 0 || if (rt->u.dst.metrics[RTAX_MTU-1] == 0 ||
rt->u.dst.metrics[RTAX_MTU-1] > rt->u.dst.dev->mtu) rt->u.dst.metrics[RTAX_MTU-1] > rt->u.dst.dev->mtu)
rt->u.dst.metrics[RTAX_MTU-1] = rt->u.dst.dev->mtu; rt->u.dst.metrics[RTAX_MTU-1] = rt->u.dst.dev->mtu;
mss = dn_mss_from_pmtu(dev, dst_pmtu(&rt->u.dst)); mss = dn_mss_from_pmtu(dev, dst_mtu(&rt->u.dst));
if (rt->u.dst.metrics[RTAX_ADVMSS-1] == 0 || if (rt->u.dst.metrics[RTAX_ADVMSS-1] == 0 ||
rt->u.dst.metrics[RTAX_ADVMSS-1] > mss) rt->u.dst.metrics[RTAX_ADVMSS-1] > mss)
rt->u.dst.metrics[RTAX_ADVMSS-1] = mss; rt->u.dst.metrics[RTAX_ADVMSS-1] = mss;
......
...@@ -278,7 +278,7 @@ int ip_mc_output(struct sk_buff *skb) ...@@ -278,7 +278,7 @@ int ip_mc_output(struct sk_buff *skb)
newskb->dev, ip_dev_loopback_xmit); newskb->dev, ip_dev_loopback_xmit);
} }
if (skb->len > dst_pmtu(&rt->u.dst)) if (skb->len > dst_mtu(&rt->u.dst))
return ip_fragment(skb, ip_finish_output); return ip_fragment(skb, ip_finish_output);
else else
return ip_finish_output(skb); return ip_finish_output(skb);
...@@ -288,7 +288,7 @@ int ip_output(struct sk_buff *skb) ...@@ -288,7 +288,7 @@ int ip_output(struct sk_buff *skb)
{ {
IP_INC_STATS(IPSTATS_MIB_OUTREQUESTS); IP_INC_STATS(IPSTATS_MIB_OUTREQUESTS);
if (skb->len > dst_pmtu(skb->dst) && !skb_shinfo(skb)->tso_size) if (skb->len > dst_mtu(skb->dst) && !skb_shinfo(skb)->tso_size)
return ip_fragment(skb, ip_finish_output); return ip_fragment(skb, ip_finish_output);
else else
return ip_finish_output(skb); return ip_finish_output(skb);
...@@ -448,7 +448,7 @@ int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff*)) ...@@ -448,7 +448,7 @@ int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff*))
if (unlikely((iph->frag_off & htons(IP_DF)) && !skb->local_df)) { if (unlikely((iph->frag_off & htons(IP_DF)) && !skb->local_df)) {
icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED, icmp_send(skb, ICMP_DEST_UNREACH, ICMP_FRAG_NEEDED,
htonl(dst_pmtu(&rt->u.dst))); htonl(dst_mtu(&rt->u.dst)));
kfree_skb(skb); kfree_skb(skb);
return -EMSGSIZE; return -EMSGSIZE;
} }
...@@ -458,7 +458,7 @@ int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff*)) ...@@ -458,7 +458,7 @@ int ip_fragment(struct sk_buff *skb, int (*output)(struct sk_buff*))
*/ */
hlen = iph->ihl * 4; hlen = iph->ihl * 4;
mtu = dst_pmtu(&rt->u.dst) - hlen; /* Size of data space */ mtu = dst_mtu(&rt->u.dst) - hlen; /* Size of data space */
/* When frag_list is given, use it. First, check its validity: /* When frag_list is given, use it. First, check its validity:
* some transformers could create wrong frag_list or break existing * some transformers could create wrong frag_list or break existing
......
...@@ -955,7 +955,7 @@ int ip_getsockopt(struct sock *sk, int level, int optname, char __user *optval, ...@@ -955,7 +955,7 @@ int ip_getsockopt(struct sock *sk, int level, int optname, char __user *optval,
val = 0; val = 0;
dst = sk_dst_get(sk); dst = sk_dst_get(sk);
if (dst) { if (dst) {
val = dst_pmtu(dst) - dst->header_len; val = dst_mtu(dst);
dst_release(dst); dst_release(dst);
} }
if (!val) { if (!val) {
......
...@@ -147,7 +147,7 @@ static int ip6_output2(struct sk_buff *skb) ...@@ -147,7 +147,7 @@ static int ip6_output2(struct sk_buff *skb)
int ip6_output(struct sk_buff *skb) int ip6_output(struct sk_buff *skb)
{ {
if (skb->len > dst_pmtu(skb->dst) || dst_allfrag(skb->dst)) if (skb->len > dst_mtu(skb->dst) || dst_allfrag(skb->dst))
return ip6_fragment(skb, ip6_output2); return ip6_fragment(skb, ip6_output2);
else else
return ip6_output2(skb); return ip6_output2(skb);
...@@ -263,7 +263,7 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl, ...@@ -263,7 +263,7 @@ int ip6_xmit(struct sock *sk, struct sk_buff *skb, struct flowi *fl,
ipv6_addr_copy(&hdr->saddr, &fl->fl6_src); ipv6_addr_copy(&hdr->saddr, &fl->fl6_src);
ipv6_addr_copy(&hdr->daddr, first_hop); ipv6_addr_copy(&hdr->daddr, first_hop);
mtu = dst_pmtu(dst); mtu = dst_mtu(dst);
if ((skb->len <= mtu) || ipfragok) { if ((skb->len <= mtu) || ipfragok) {
IP6_INC_STATS(IPSTATS_MIB_OUTREQUESTS); IP6_INC_STATS(IPSTATS_MIB_OUTREQUESTS);
return NF_HOOK(PF_INET6, NF_IP6_LOCAL_OUT, skb, NULL, dst->dev, ip6_maybe_reroute); return NF_HOOK(PF_INET6, NF_IP6_LOCAL_OUT, skb, NULL, dst->dev, ip6_maybe_reroute);
...@@ -429,10 +429,10 @@ int ip6_forward(struct sk_buff *skb) ...@@ -429,10 +429,10 @@ int ip6_forward(struct sk_buff *skb)
goto error; goto error;
} }
if (skb->len > dst_pmtu(dst)) { if (skb->len > dst_mtu(dst)) {
/* Again, force OUTPUT device used as source address */ /* Again, force OUTPUT device used as source address */
skb->dev = dst->dev; skb->dev = dst->dev;
icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, dst_pmtu(dst), skb->dev); icmpv6_send(skb, ICMPV6_PKT_TOOBIG, 0, dst_mtu(dst), skb->dev);
IP6_INC_STATS_BH(IPSTATS_MIB_INTOOBIGERRORS); IP6_INC_STATS_BH(IPSTATS_MIB_INTOOBIGERRORS);
IP6_INC_STATS_BH(IPSTATS_MIB_FRAGFAILS); IP6_INC_STATS_BH(IPSTATS_MIB_FRAGFAILS);
kfree_skb(skb); kfree_skb(skb);
...@@ -535,7 +535,7 @@ static int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *)) ...@@ -535,7 +535,7 @@ static int ip6_fragment(struct sk_buff *skb, int (*output)(struct sk_buff *))
hlen = ip6_find_1stfragopt(skb, &prevhdr); hlen = ip6_find_1stfragopt(skb, &prevhdr);
nexthdr = *prevhdr; nexthdr = *prevhdr;
mtu = dst_pmtu(&rt->u.dst) - hlen - sizeof(struct frag_hdr); mtu = dst_mtu(&rt->u.dst) - hlen - sizeof(struct frag_hdr);
if (skb_shinfo(skb)->frag_list) { if (skb_shinfo(skb)->frag_list) {
int first_len = skb_pagelen(skb); int first_len = skb_pagelen(skb);
......
...@@ -607,7 +607,7 @@ int ipv6_getsockopt(struct sock *sk, int level, int optname, ...@@ -607,7 +607,7 @@ int ipv6_getsockopt(struct sock *sk, int level, int optname,
lock_sock(sk); lock_sock(sk);
dst = sk_dst_get(sk); dst = sk_dst_get(sk);
if (dst) { if (dst) {
val = dst_pmtu(dst) - dst->header_len; val = dst_mtu(dst);
dst_release(dst); dst_release(dst);
} }
release_sock(sk); release_sock(sk);
......
...@@ -625,7 +625,7 @@ static void ip6_rt_update_pmtu(struct dst_entry *dst, u32 mtu) ...@@ -625,7 +625,7 @@ static void ip6_rt_update_pmtu(struct dst_entry *dst, u32 mtu)
{ {
struct rt6_info *rt6 = (struct rt6_info*)dst; struct rt6_info *rt6 = (struct rt6_info*)dst;
if (mtu < dst_pmtu(dst) && rt6->rt6i_dst.plen == 128) { if (mtu < dst_mtu(dst) && rt6->rt6i_dst.plen == 128) {
rt6->rt6i_flags |= RTF_MODIFIED; rt6->rt6i_flags |= RTF_MODIFIED;
if (mtu < IPV6_MIN_MTU) { if (mtu < IPV6_MIN_MTU) {
mtu = IPV6_MIN_MTU; mtu = IPV6_MIN_MTU;
...@@ -686,7 +686,7 @@ struct dst_entry *ndisc_dst_alloc(struct net_device *dev, ...@@ -686,7 +686,7 @@ struct dst_entry *ndisc_dst_alloc(struct net_device *dev,
atomic_set(&rt->u.dst.__refcnt, 1); atomic_set(&rt->u.dst.__refcnt, 1);
rt->u.dst.metrics[RTAX_HOPLIMIT-1] = 255; rt->u.dst.metrics[RTAX_HOPLIMIT-1] = 255;
rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(rt->rt6i_dev); rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(rt->rt6i_dev);
rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_pmtu(&rt->u.dst)); rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_mtu(&rt->u.dst));
rt->u.dst.output = output; rt->u.dst.output = output;
#if 0 /* there's no chance to use these for ndisc */ #if 0 /* there's no chance to use these for ndisc */
...@@ -971,7 +971,7 @@ int ip6_route_add(struct in6_rtmsg *rtmsg, struct nlmsghdr *nlh, void *_rtattr) ...@@ -971,7 +971,7 @@ int ip6_route_add(struct in6_rtmsg *rtmsg, struct nlmsghdr *nlh, void *_rtattr)
if (!rt->u.dst.metrics[RTAX_MTU-1]) if (!rt->u.dst.metrics[RTAX_MTU-1])
rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(dev); rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(dev);
if (!rt->u.dst.metrics[RTAX_ADVMSS-1]) if (!rt->u.dst.metrics[RTAX_ADVMSS-1])
rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_pmtu(&rt->u.dst)); rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_mtu(&rt->u.dst));
rt->u.dst.dev = dev; rt->u.dst.dev = dev;
rt->rt6i_idev = idev; rt->rt6i_idev = idev;
return ip6_ins_rt(rt, nlh, _rtattr); return ip6_ins_rt(rt, nlh, _rtattr);
...@@ -1134,7 +1134,7 @@ void rt6_redirect(struct in6_addr *dest, struct in6_addr *saddr, ...@@ -1134,7 +1134,7 @@ void rt6_redirect(struct in6_addr *dest, struct in6_addr *saddr,
nrt->rt6i_nexthop = neigh_clone(neigh); nrt->rt6i_nexthop = neigh_clone(neigh);
/* Reset pmtu, it may be better */ /* Reset pmtu, it may be better */
nrt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(neigh->dev); nrt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(neigh->dev);
nrt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_pmtu(&nrt->u.dst)); nrt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_mtu(&nrt->u.dst));
if (ip6_ins_rt(nrt, NULL, NULL)) if (ip6_ins_rt(nrt, NULL, NULL))
goto out; goto out;
...@@ -1164,7 +1164,7 @@ void rt6_pmtu_discovery(struct in6_addr *daddr, struct in6_addr *saddr, ...@@ -1164,7 +1164,7 @@ void rt6_pmtu_discovery(struct in6_addr *daddr, struct in6_addr *saddr,
if (rt == NULL) if (rt == NULL)
return; return;
if (pmtu >= dst_pmtu(&rt->u.dst)) if (pmtu >= dst_mtu(&rt->u.dst))
goto out; goto out;
if (pmtu < IPV6_MIN_MTU) { if (pmtu < IPV6_MIN_MTU) {
...@@ -1405,7 +1405,7 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev, ...@@ -1405,7 +1405,7 @@ struct rt6_info *addrconf_dst_alloc(struct inet6_dev *idev,
rt->rt6i_dev = &loopback_dev; rt->rt6i_dev = &loopback_dev;
rt->rt6i_idev = idev; rt->rt6i_idev = idev;
rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(rt->rt6i_dev); rt->u.dst.metrics[RTAX_MTU-1] = ipv6_get_mtu(rt->rt6i_dev);
rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_pmtu(&rt->u.dst)); rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(dst_mtu(&rt->u.dst));
rt->u.dst.metrics[RTAX_HOPLIMIT-1] = -1; rt->u.dst.metrics[RTAX_HOPLIMIT-1] = -1;
rt->u.dst.obsolete = -1; rt->u.dst.obsolete = -1;
...@@ -1480,9 +1480,9 @@ static int rt6_mtu_change_route(struct rt6_info *rt, void *p_arg) ...@@ -1480,9 +1480,9 @@ static int rt6_mtu_change_route(struct rt6_info *rt, void *p_arg)
*/ */
if (rt->rt6i_dev == arg->dev && if (rt->rt6i_dev == arg->dev &&
!dst_metric_locked(&rt->u.dst, RTAX_MTU) && !dst_metric_locked(&rt->u.dst, RTAX_MTU) &&
(dst_pmtu(&rt->u.dst) > arg->mtu || (dst_mtu(&rt->u.dst) > arg->mtu ||
(dst_pmtu(&rt->u.dst) < arg->mtu && (dst_mtu(&rt->u.dst) < arg->mtu &&
dst_pmtu(&rt->u.dst) == idev->cnf.mtu6))) dst_mtu(&rt->u.dst) == idev->cnf.mtu6)))
rt->u.dst.metrics[RTAX_MTU-1] = arg->mtu; rt->u.dst.metrics[RTAX_MTU-1] = arg->mtu;
rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(arg->mtu); rt->u.dst.metrics[RTAX_ADVMSS-1] = ipv6_advmss(arg->mtu);
return 0; return 0;
......
...@@ -227,7 +227,7 @@ void sctp_transport_pmtu(struct sctp_transport *transport) ...@@ -227,7 +227,7 @@ void sctp_transport_pmtu(struct sctp_transport *transport)
dst = transport->af_specific->get_dst(NULL, &transport->ipaddr, NULL); dst = transport->af_specific->get_dst(NULL, &transport->ipaddr, NULL);
if (dst) { if (dst) {
transport->pmtu = dst_pmtu(dst); transport->pmtu = dst_mtu(dst);
dst_release(dst); dst_release(dst);
} else } else
transport->pmtu = SCTP_DEFAULT_MAXSEGMENT; transport->pmtu = SCTP_DEFAULT_MAXSEGMENT;
...@@ -253,7 +253,7 @@ void sctp_transport_route(struct sctp_transport *transport, ...@@ -253,7 +253,7 @@ void sctp_transport_route(struct sctp_transport *transport,
transport->dst = dst; transport->dst = dst;
if (dst) { if (dst) {
transport->pmtu = dst_pmtu(dst); transport->pmtu = dst_mtu(dst);
/* Initialize sk->sk_rcv_saddr, if the transport is the /* Initialize sk->sk_rcv_saddr, if the transport is the
* association's active path for getsockname(). * association's active path for getsockname().
......
...@@ -1119,12 +1119,12 @@ void xfrm_init_pmtu(struct dst_entry *dst) ...@@ -1119,12 +1119,12 @@ void xfrm_init_pmtu(struct dst_entry *dst)
struct xfrm_dst *xdst = (struct xfrm_dst *)dst; struct xfrm_dst *xdst = (struct xfrm_dst *)dst;
u32 pmtu, route_mtu_cached; u32 pmtu, route_mtu_cached;
pmtu = dst_pmtu(dst->child); pmtu = dst_mtu(dst->child);
xdst->child_mtu_cached = pmtu; xdst->child_mtu_cached = pmtu;
pmtu = xfrm_state_mtu(dst->xfrm, pmtu); pmtu = xfrm_state_mtu(dst->xfrm, pmtu);
route_mtu_cached = dst_pmtu(xdst->route); route_mtu_cached = dst_mtu(xdst->route);
xdst->route_mtu_cached = route_mtu_cached; xdst->route_mtu_cached = route_mtu_cached;
if (pmtu > route_mtu_cached) if (pmtu > route_mtu_cached)
...@@ -1160,7 +1160,7 @@ int xfrm_bundle_ok(struct xfrm_dst *first, struct flowi *fl, int family) ...@@ -1160,7 +1160,7 @@ int xfrm_bundle_ok(struct xfrm_dst *first, struct flowi *fl, int family)
if (dst->xfrm->km.state != XFRM_STATE_VALID) if (dst->xfrm->km.state != XFRM_STATE_VALID)
return 0; return 0;
mtu = dst_pmtu(dst->child); mtu = dst_mtu(dst->child);
if (xdst->child_mtu_cached != mtu) { if (xdst->child_mtu_cached != mtu) {
last = xdst; last = xdst;
xdst->child_mtu_cached = mtu; xdst->child_mtu_cached = mtu;
...@@ -1168,7 +1168,7 @@ int xfrm_bundle_ok(struct xfrm_dst *first, struct flowi *fl, int family) ...@@ -1168,7 +1168,7 @@ int xfrm_bundle_ok(struct xfrm_dst *first, struct flowi *fl, int family)
if (!dst_check(xdst->route, 0)) if (!dst_check(xdst->route, 0))
return 0; return 0;
mtu = dst_pmtu(xdst->route); mtu = dst_mtu(xdst->route);
if (xdst->route_mtu_cached != mtu) { if (xdst->route_mtu_cached != mtu) {
last = xdst; last = xdst;
xdst->route_mtu_cached = mtu; xdst->route_mtu_cached = mtu;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment