Commit af13b3c3 authored by David Laight's avatar David Laight Committed by David S. Miller

Remove DST_HOST

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: default avatarDavid Laight <david.laight@aculab.com>
Acked-by: default avatarDavid Ahern <dsahern@gmail.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 723d5e5b
...@@ -504,7 +504,7 @@ static void vrf_rt6_release(struct net_device *dev, struct net_vrf *vrf) ...@@ -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) 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_vrf *vrf = netdev_priv(dev);
struct net *net = dev_net(dev); struct net *net = dev_net(dev);
struct rt6_info *rt6; struct rt6_info *rt6;
...@@ -739,7 +739,7 @@ static int vrf_rtable_create(struct net_device *dev) ...@@ -739,7 +739,7 @@ static int vrf_rtable_create(struct net_device *dev)
return -ENOMEM; return -ENOMEM;
/* create a dst for routing packets out through a VRF device */ /* 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) if (!rth)
return -ENOMEM; return -ENOMEM;
......
...@@ -35,7 +35,6 @@ struct dst_entry { ...@@ -35,7 +35,6 @@ struct dst_entry {
int (*output)(struct net *net, struct sock *sk, struct sk_buff *skb); int (*output)(struct net *net, struct sock *sk, struct sk_buff *skb);
unsigned short flags; unsigned short flags;
#define DST_HOST 0x0001
#define DST_NOXFRM 0x0002 #define DST_NOXFRM 0x0002
#define DST_NOPOLICY 0x0004 #define DST_NOPOLICY 0x0004
#define DST_NOCOUNT 0x0008 #define DST_NOCOUNT 0x0008
......
...@@ -190,11 +190,10 @@ struct fib6_info { ...@@ -190,11 +190,10 @@ struct fib6_info {
u8 should_flush:1, u8 should_flush:1,
dst_nocount:1, dst_nocount:1,
dst_nopolicy:1, dst_nopolicy:1,
dst_host:1,
fib6_destroying:1, fib6_destroying:1,
offload:1, offload:1,
trap:1, trap:1,
unused:1; unused:2;
struct rcu_head rcu; struct rcu_head rcu;
struct nexthop *nh; struct nexthop *nh;
......
...@@ -231,7 +231,7 @@ int ip_rt_ioctl(struct net *, unsigned int cmd, struct rtentry *rt); ...@@ -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); void ip_rt_get_source(u8 *src, struct sk_buff *skb, struct rtable *rt);
struct rtable *rt_dst_alloc(struct net_device *dev, struct rtable *rt_dst_alloc(struct net_device *dev,
unsigned int flags, u16 type, 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 rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt);
struct in_ifaddr; struct in_ifaddr;
......
...@@ -1173,7 +1173,7 @@ static int dn_route_output_slow(struct dst_entry **pprt, const struct flowidn *o ...@@ -1173,7 +1173,7 @@ static int dn_route_output_slow(struct dst_entry **pprt, const struct flowidn *o
if (dev_out->flags & IFF_LOOPBACK) if (dev_out->flags & IFF_LOOPBACK)
flags |= RTCF_LOCAL; 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) if (rt == NULL)
goto e_nobufs; goto e_nobufs;
...@@ -1439,7 +1439,7 @@ static int dn_route_input_slow(struct sk_buff *skb) ...@@ -1439,7 +1439,7 @@ static int dn_route_input_slow(struct sk_buff *skb)
} }
make_route: 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) if (rt == NULL)
goto e_nobufs; goto e_nobufs;
......
...@@ -1621,12 +1621,11 @@ static void rt_set_nexthop(struct rtable *rt, __be32 daddr, ...@@ -1621,12 +1621,11 @@ static void rt_set_nexthop(struct rtable *rt, __be32 daddr,
struct rtable *rt_dst_alloc(struct net_device *dev, struct rtable *rt_dst_alloc(struct net_device *dev,
unsigned int flags, u16 type, unsigned int flags, u16 type,
bool nopolicy, bool noxfrm, bool will_cache) bool nopolicy, bool noxfrm)
{ {
struct rtable *rt; struct rtable *rt;
rt = dst_alloc(&ipv4_dst_ops, dev, 1, DST_OBSOLETE_FORCE_CHK, rt = dst_alloc(&ipv4_dst_ops, dev, 1, DST_OBSOLETE_FORCE_CHK,
(will_cache ? 0 : DST_HOST) |
(nopolicy ? DST_NOPOLICY : 0) | (nopolicy ? DST_NOPOLICY : 0) |
(noxfrm ? DST_NOXFRM : 0)); (noxfrm ? DST_NOXFRM : 0));
...@@ -1674,7 +1673,6 @@ struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt) ...@@ -1674,7 +1673,6 @@ struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt)
new_rt->rt_gw6 = rt->rt_gw6; new_rt->rt_gw6 = rt->rt_gw6;
INIT_LIST_HEAD(&new_rt->rt_uncached); INIT_LIST_HEAD(&new_rt->rt_uncached);
new_rt->dst.flags |= DST_HOST;
new_rt->dst.input = rt->dst.input; new_rt->dst.input = rt->dst.input;
new_rt->dst.output = rt->dst.output; new_rt->dst.output = rt->dst.output;
new_rt->dst.error = rt->dst.error; 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, ...@@ -1734,7 +1732,7 @@ static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr,
flags |= RTCF_LOCAL; flags |= RTCF_LOCAL;
rth = rt_dst_alloc(dev_net(dev)->loopback_dev, flags, RTN_MULTICAST, 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) if (!rth)
return -ENOBUFS; return -ENOBUFS;
...@@ -1851,7 +1849,7 @@ static int __mkroute_input(struct sk_buff *skb, ...@@ -1851,7 +1849,7 @@ static int __mkroute_input(struct sk_buff *skb,
rth = rt_dst_alloc(out_dev->dev, 0, res->type, rth = rt_dst_alloc(out_dev->dev, 0, res->type,
IN_DEV_CONF_GET(in_dev, NOPOLICY), 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) { if (!rth) {
err = -ENOBUFS; err = -ENOBUFS;
goto cleanup; goto cleanup;
...@@ -2219,7 +2217,7 @@ out: return err; ...@@ -2219,7 +2217,7 @@ out: return err;
rth = rt_dst_alloc(l3mdev_master_dev_rcu(dev) ? : net->loopback_dev, rth = rt_dst_alloc(l3mdev_master_dev_rcu(dev) ? : net->loopback_dev,
flags | RTCF_LOCAL, res->type, 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) if (!rth)
goto e_nobufs; goto e_nobufs;
...@@ -2443,8 +2441,7 @@ static struct rtable *__mkroute_output(const struct fib_result *res, ...@@ -2443,8 +2441,7 @@ static struct rtable *__mkroute_output(const struct fib_result *res,
add: add:
rth = rt_dst_alloc(dev_out, flags, type, rth = rt_dst_alloc(dev_out, flags, type,
IN_DEV_CONF_GET(in_dev, NOPOLICY), IN_DEV_CONF_GET(in_dev, NOPOLICY),
IN_DEV_CONF_GET(in_dev, NOXFRM), IN_DEV_CONF_GET(in_dev, NOXFRM));
do_cache);
if (!rth) if (!rth)
return ERR_PTR(-ENOBUFS); return ERR_PTR(-ENOBUFS);
......
...@@ -1062,8 +1062,6 @@ static unsigned short fib6_info_dst_flags(struct fib6_info *rt) ...@@ -1062,8 +1062,6 @@ static unsigned short fib6_info_dst_flags(struct fib6_info *rt)
flags |= DST_NOCOUNT; flags |= DST_NOCOUNT;
if (rt->dst_nopolicy) if (rt->dst_nopolicy)
flags |= DST_NOPOLICY; flags |= DST_NOPOLICY;
if (rt->dst_host)
flags |= DST_HOST;
return flags; return flags;
} }
...@@ -1349,7 +1347,6 @@ static struct rt6_info *ip6_rt_cache_alloc(const struct fib6_result *res, ...@@ -1349,7 +1347,6 @@ static struct rt6_info *ip6_rt_cache_alloc(const struct fib6_result *res,
ip6_rt_copy_init(rt, res); ip6_rt_copy_init(rt, res);
rt->rt6i_flags |= RTF_CACHE; rt->rt6i_flags |= RTF_CACHE;
rt->dst.flags |= DST_HOST;
rt->rt6i_dst.addr = *daddr; rt->rt6i_dst.addr = *daddr;
rt->rt6i_dst.plen = 128; rt->rt6i_dst.plen = 128;
...@@ -3142,7 +3139,6 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev, ...@@ -3142,7 +3139,6 @@ struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
goto out; goto out;
} }
rt->dst.flags |= DST_HOST;
rt->dst.input = ip6_input; rt->dst.input = ip6_input;
rt->dst.output = ip6_output; rt->dst.output = ip6_output;
rt->rt6i_gateway = fl6->daddr; rt->rt6i_gateway = fl6->daddr;
...@@ -3645,8 +3641,6 @@ static struct fib6_info *ip6_route_info_create(struct fib6_config *cfg, ...@@ -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); ipv6_addr_prefix(&rt->fib6_dst.addr, &cfg->fc_dst, cfg->fc_dst_len);
rt->fib6_dst.plen = 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 #ifdef CONFIG_IPV6_SUBTREES
ipv6_addr_prefix(&rt->fib6_src.addr, &cfg->fc_src, cfg->fc_src_len); ipv6_addr_prefix(&rt->fib6_src.addr, &cfg->fc_src, cfg->fc_src_len);
......
...@@ -2613,7 +2613,6 @@ static struct dst_entry *xfrm_bundle_create(struct xfrm_policy *policy, ...@@ -2613,7 +2613,6 @@ static struct dst_entry *xfrm_bundle_create(struct xfrm_policy *policy,
xdst->xfrm_genid = xfrm[i]->genid; xdst->xfrm_genid = xfrm[i]->genid;
dst1->obsolete = DST_OBSOLETE_FORCE_CHK; dst1->obsolete = DST_OBSOLETE_FORCE_CHK;
dst1->flags |= DST_HOST;
dst1->lastuse = now; dst1->lastuse = now;
dst1->input = dst_discard; dst1->input = dst_discard;
...@@ -2899,7 +2898,7 @@ static struct xfrm_dst *xfrm_create_dummy_bundle(struct net *net, ...@@ -2899,7 +2898,7 @@ static struct xfrm_dst *xfrm_create_dummy_bundle(struct net *net,
dst_copy_metrics(dst1, dst); dst_copy_metrics(dst1, dst);
dst1->obsolete = DST_OBSOLETE_FORCE_CHK; dst1->obsolete = DST_OBSOLETE_FORCE_CHK;
dst1->flags |= DST_HOST | DST_XFRM_QUEUE; dst1->flags |= DST_XFRM_QUEUE;
dst1->lastuse = jiffies; dst1->lastuse = jiffies;
dst1->input = dst_discard; dst1->input = dst_discard;
......
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