Remove DST_HOST
authorDavid Laight <David.Laight@ACULAB.COM>
Mon, 23 Mar 2020 14:31:19 +0000 (14:31 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Mar 2020 04:57:44 +0000 (21:57 -0700)
Previous changes to the IP routing code have removed all the
tests for the DS_HOST route flag.
Remove the flags and all the code that sets it.

Signed-off-by: David Laight <david.laight@aculab.com>
Acked-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vrf.c
include/net/dst.h
include/net/ip6_fib.h
include/net/route.h
net/decnet/dn_route.c
net/ipv4/route.c
net/ipv6/route.c
net/xfrm/xfrm_policy.c

index b8228f50bc9412e8d6037510b0cc46df55369202..66e00ddc0d421009be4ed5a61d510408e45aabbf 100644 (file)
@@ -504,7 +504,7 @@ static void vrf_rt6_release(struct net_device *dev, struct net_vrf *vrf)
 
 static int vrf_rt6_create(struct net_device *dev)
 {
-       int flags = DST_HOST | DST_NOPOLICY | DST_NOXFRM;
+       int flags = DST_NOPOLICY | DST_NOXFRM;
        struct net_vrf *vrf = netdev_priv(dev);
        struct net *net = dev_net(dev);
        struct rt6_info *rt6;
@@ -739,7 +739,7 @@ static int vrf_rtable_create(struct net_device *dev)
                return -ENOMEM;
 
        /* create a dst for routing packets out through a VRF device */
-       rth = rt_dst_alloc(dev, 0, RTN_UNICAST, 1, 1, 0);
+       rth = rt_dst_alloc(dev, 0, RTN_UNICAST, 1, 1);
        if (!rth)
                return -ENOMEM;
 
index 3448cf865edee88fe97c7651895e47b940d8ae8a..07adfacd8088ac473f2b4a8d368312a6560e71a0 100644 (file)
@@ -35,7 +35,6 @@ struct dst_entry {
        int                     (*output)(struct net *net, struct sock *sk, struct sk_buff *skb);
 
        unsigned short          flags;
-#define DST_HOST               0x0001
 #define DST_NOXFRM             0x0002
 #define DST_NOPOLICY           0x0004
 #define DST_NOCOUNT            0x0008
index 6ec26e4d7f11fbdd2039f12082c1d059dc6c459f..80262d2980f5d8e24b93f573ce9858b126031ea4 100644 (file)
@@ -190,11 +190,10 @@ struct fib6_info {
        u8                              should_flush:1,
                                        dst_nocount:1,
                                        dst_nopolicy:1,
-                                       dst_host:1,
                                        fib6_destroying:1,
                                        offload:1,
                                        trap:1,
-                                       unused:1;
+                                       unused:2;
 
        struct rcu_head                 rcu;
        struct nexthop                  *nh;
index 81750ae5083324bee44f02d0b9186a251fab7629..ff021cab657e503e7db2044bc7c3309053d6c173 100644 (file)
@@ -231,7 +231,7 @@ int ip_rt_ioctl(struct net *, unsigned int cmd, struct rtentry *rt);
 void ip_rt_get_source(u8 *src, struct sk_buff *skb, struct rtable *rt);
 struct rtable *rt_dst_alloc(struct net_device *dev,
                             unsigned int flags, u16 type,
-                            bool nopolicy, bool noxfrm, bool will_cache);
+                            bool nopolicy, bool noxfrm);
 struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt);
 
 struct in_ifaddr;
index 08c3dc45f1a4344ca919b0fd1a6c73ec04247d05..06b9983325cc93f040cc32575ef7454a64b15fdd 100644 (file)
@@ -1173,7 +1173,7 @@ make_route:
        if (dev_out->flags & IFF_LOOPBACK)
                flags |= RTCF_LOCAL;
 
-       rt = dst_alloc(&dn_dst_ops, dev_out, 0, DST_OBSOLETE_NONE, DST_HOST);
+       rt = dst_alloc(&dn_dst_ops, dev_out, 0, DST_OBSOLETE_NONE, 0);
        if (rt == NULL)
                goto e_nobufs;
 
@@ -1439,7 +1439,7 @@ static int dn_route_input_slow(struct sk_buff *skb)
        }
 
 make_route:
-       rt = dst_alloc(&dn_dst_ops, out_dev, 1, DST_OBSOLETE_NONE, DST_HOST);
+       rt = dst_alloc(&dn_dst_ops, out_dev, 1, DST_OBSOLETE_NONE, 0);
        if (rt == NULL)
                goto e_nobufs;
 
index 042599cc691dee5d45647f16fee73cd278db84bc..788c69d9bfe0d20dd1f0884e2d9939df31442bb5 100644 (file)
@@ -1621,12 +1621,11 @@ static void rt_set_nexthop(struct rtable *rt, __be32 daddr,
 
 struct rtable *rt_dst_alloc(struct net_device *dev,
                            unsigned int flags, u16 type,
-                           bool nopolicy, bool noxfrm, bool will_cache)
+                           bool nopolicy, bool noxfrm)
 {
        struct rtable *rt;
 
        rt = dst_alloc(&ipv4_dst_ops, dev, 1, DST_OBSOLETE_FORCE_CHK,
-                      (will_cache ? 0 : DST_HOST) |
                       (nopolicy ? DST_NOPOLICY : 0) |
                       (noxfrm ? DST_NOXFRM : 0));
 
@@ -1674,7 +1673,6 @@ struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt)
                        new_rt->rt_gw6 = rt->rt_gw6;
                INIT_LIST_HEAD(&new_rt->rt_uncached);
 
-               new_rt->dst.flags |= DST_HOST;
                new_rt->dst.input = rt->dst.input;
                new_rt->dst.output = rt->dst.output;
                new_rt->dst.error = rt->dst.error;
@@ -1734,7 +1732,7 @@ static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr,
                flags |= RTCF_LOCAL;
 
        rth = rt_dst_alloc(dev_net(dev)->loopback_dev, flags, RTN_MULTICAST,
-                          IN_DEV_CONF_GET(in_dev, NOPOLICY), false, false);
+                          IN_DEV_CONF_GET(in_dev, NOPOLICY), false);
        if (!rth)
                return -ENOBUFS;
 
@@ -1851,7 +1849,7 @@ static int __mkroute_input(struct sk_buff *skb,
 
        rth = rt_dst_alloc(out_dev->dev, 0, res->type,
                           IN_DEV_CONF_GET(in_dev, NOPOLICY),
-                          IN_DEV_CONF_GET(out_dev, NOXFRM), do_cache);
+                          IN_DEV_CONF_GET(out_dev, NOXFRM));
        if (!rth) {
                err = -ENOBUFS;
                goto cleanup;
@@ -2219,7 +2217,7 @@ local_input:
 
        rth = rt_dst_alloc(l3mdev_master_dev_rcu(dev) ? : net->loopback_dev,
                           flags | RTCF_LOCAL, res->type,
-                          IN_DEV_CONF_GET(in_dev, NOPOLICY), false, do_cache);
+                          IN_DEV_CONF_GET(in_dev, NOPOLICY), false);
        if (!rth)
                goto e_nobufs;
 
@@ -2443,8 +2441,7 @@ static struct rtable *__mkroute_output(const struct fib_result *res,
 add:
        rth = rt_dst_alloc(dev_out, flags, type,
                           IN_DEV_CONF_GET(in_dev, NOPOLICY),
-                          IN_DEV_CONF_GET(in_dev, NOXFRM),
-                          do_cache);
+                          IN_DEV_CONF_GET(in_dev, NOXFRM));
        if (!rth)
                return ERR_PTR(-ENOBUFS);
 
index 2430c2f6819a4f4d715f3502806885edd4a2de0c..afcde55d537c33463ad3e9bcb2805c14655e9e2e 100644 (file)
@@ -1062,8 +1062,6 @@ static unsigned short fib6_info_dst_flags(struct fib6_info *rt)
                flags |= DST_NOCOUNT;
        if (rt->dst_nopolicy)
                flags |= DST_NOPOLICY;
-       if (rt->dst_host)
-               flags |= DST_HOST;
 
        return flags;
 }
@@ -1349,7 +1347,6 @@ static struct rt6_info *ip6_rt_cache_alloc(const struct fib6_result *res,
 
        ip6_rt_copy_init(rt, res);
        rt->rt6i_flags |= RTF_CACHE;
-       rt->dst.flags |= DST_HOST;
        rt->rt6i_dst.addr = *daddr;
        rt->rt6i_dst.plen = 128;
 
@@ -3142,7 +3139,6 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
                goto out;
        }
 
-       rt->dst.flags |= DST_HOST;
        rt->dst.input = ip6_input;
        rt->dst.output  = ip6_output;
        rt->rt6i_gateway  = fl6->daddr;
@@ -3645,8 +3641,6 @@ static struct fib6_info *ip6_route_info_create(struct fib6_config *cfg,
 
        ipv6_addr_prefix(&rt->fib6_dst.addr, &cfg->fc_dst, cfg->fc_dst_len);
        rt->fib6_dst.plen = cfg->fc_dst_len;
-       if (rt->fib6_dst.plen == 128)
-               rt->dst_host = true;
 
 #ifdef CONFIG_IPV6_SUBTREES
        ipv6_addr_prefix(&rt->fib6_src.addr, &cfg->fc_src, cfg->fc_src_len);
index dbda08ec566ecdd8acfcb352b2bfb6d1cdc6ef56..d560d723b601c5e1a5754e0fceb213beea812aaa 100644 (file)
@@ -2613,7 +2613,6 @@ static struct dst_entry *xfrm_bundle_create(struct xfrm_policy *policy,
                xdst->xfrm_genid = xfrm[i]->genid;
 
                dst1->obsolete = DST_OBSOLETE_FORCE_CHK;
-               dst1->flags |= DST_HOST;
                dst1->lastuse = now;
 
                dst1->input = dst_discard;
@@ -2899,7 +2898,7 @@ static struct xfrm_dst *xfrm_create_dummy_bundle(struct net *net,
        dst_copy_metrics(dst1, dst);
 
        dst1->obsolete = DST_OBSOLETE_FORCE_CHK;
-       dst1->flags |= DST_HOST | DST_XFRM_QUEUE;
+       dst1->flags |= DST_XFRM_QUEUE;
        dst1->lastuse = jiffies;
 
        dst1->input = dst_discard;