Commit 0806f1f8 authored by David S. Miller's avatar David S. Miller

[NET]: Kill NET_FASTROUTE, does nothing and suffers from major bitrot.

Based up suggestion/changes from Jeff Garzik.
Signed-off-by: default avatarDavid S. Miller <davem@redhat.com>
parent e71f7103
...@@ -527,13 +527,4 @@ set_multicast_list(struct net_device *dev) ...@@ -527,13 +527,4 @@ set_multicast_list(struct net_device *dev)
printk(KERN_WARNING "%s: set_multicast_list called\n", dev->name); printk(KERN_WARNING "%s: set_multicast_list called\n", dev->name);
} }
#ifdef CONFIG_NET_FASTROUTE
static int
simeth_accept_fastpath(struct net_device *dev, struct dst_entry *dst)
{
printk(KERN_WARNING "%s: simeth_accept_fastpath called\n", dev->name);
return -1;
}
#endif
__initcall(simeth_probe); __initcall(simeth_probe);
...@@ -4214,13 +4214,6 @@ static int bond_xmit_broadcast(struct sk_buff *skb, struct net_device *bond_dev) ...@@ -4214,13 +4214,6 @@ static int bond_xmit_broadcast(struct sk_buff *skb, struct net_device *bond_dev)
return 0; return 0;
} }
#ifdef CONFIG_NET_FASTROUTE
static int bond_accept_fastpath(struct net_device *bond_dev, struct dst_entry *dst)
{
return -1;
}
#endif
/*------------------------- Device initialization ---------------------------*/ /*------------------------- Device initialization ---------------------------*/
/* /*
...@@ -4294,9 +4287,6 @@ static int __init bond_init(struct net_device *bond_dev, struct bond_params *par ...@@ -4294,9 +4287,6 @@ static int __init bond_init(struct net_device *bond_dev, struct bond_params *par
bond_set_mode_ops(bond_dev, bond->params.mode); bond_set_mode_ops(bond_dev, bond->params.mode);
bond_dev->destructor = free_netdev; bond_dev->destructor = free_netdev;
#ifdef CONFIG_NET_FASTROUTE
bond_dev->accept_fastpath = bond_accept_fastpath;
#endif
/* Initialize the device options */ /* Initialize the device options */
bond_dev->tx_queue_len = 0; bond_dev->tx_queue_len = 0;
......
...@@ -57,13 +57,6 @@ static void set_multicast_list(struct net_device *dev) ...@@ -57,13 +57,6 @@ static void set_multicast_list(struct net_device *dev)
{ {
} }
#ifdef CONFIG_NET_FASTROUTE
static int dummy_accept_fastpath(struct net_device *dev, struct dst_entry *dst)
{
return -1;
}
#endif
static void __init dummy_setup(struct net_device *dev) static void __init dummy_setup(struct net_device *dev)
{ {
/* Initialize the device structure. */ /* Initialize the device structure. */
...@@ -71,9 +64,6 @@ static void __init dummy_setup(struct net_device *dev) ...@@ -71,9 +64,6 @@ static void __init dummy_setup(struct net_device *dev)
dev->hard_start_xmit = dummy_xmit; dev->hard_start_xmit = dummy_xmit;
dev->set_multicast_list = set_multicast_list; dev->set_multicast_list = set_multicast_list;
dev->set_mac_address = dummy_set_address; dev->set_mac_address = dummy_set_address;
#ifdef CONFIG_NET_FASTROUTE
dev->accept_fastpath = dummy_accept_fastpath;
#endif
/* Fill in device structure with ethernet-generic values. */ /* Fill in device structure with ethernet-generic values. */
ether_setup(dev); ether_setup(dev);
......
...@@ -472,12 +472,6 @@ struct net_device ...@@ -472,12 +472,6 @@ struct net_device
/* bridge stuff */ /* bridge stuff */
struct net_bridge_port *br_port; struct net_bridge_port *br_port;
#ifdef CONFIG_NET_FASTROUTE
#define NETDEV_FASTROUTE_HMASK 0xF
/* Semi-private data. Keep it at the end of device struct. */
rwlock_t fastpath_lock;
struct dst_entry *fastpath[NETDEV_FASTROUTE_HMASK+1];
#endif
#ifdef CONFIG_NET_DIVERT #ifdef CONFIG_NET_DIVERT
/* this will get initialized at each interface type init routine */ /* this will get initialized at each interface type init routine */
struct divert_blk *divert; struct divert_blk *divert;
...@@ -947,11 +941,6 @@ extern unsigned long netdev_fc_xoff; ...@@ -947,11 +941,6 @@ extern unsigned long netdev_fc_xoff;
extern atomic_t netdev_dropping; extern atomic_t netdev_dropping;
extern int netdev_set_master(struct net_device *dev, struct net_device *master); extern int netdev_set_master(struct net_device *dev, struct net_device *master);
extern int skb_checksum_help(struct sk_buff **pskb, int inward); extern int skb_checksum_help(struct sk_buff **pskb, int inward);
#ifdef CONFIG_NET_FASTROUTE
extern int netdev_fastroute;
extern int netdev_fastroute_obstacles;
extern void dev_clear_fastroute(struct net_device *dev);
#endif
#ifdef CONFIG_SYSCTL #ifdef CONFIG_SYSCTL
extern char *net_sysctl_strdup(const char *s); extern char *net_sysctl_strdup(const char *s);
......
...@@ -216,11 +216,6 @@ static struct notifier_block *netdev_chain; ...@@ -216,11 +216,6 @@ static struct notifier_block *netdev_chain;
*/ */
DEFINE_PER_CPU(struct softnet_data, softnet_data) = { 0, }; DEFINE_PER_CPU(struct softnet_data, softnet_data) = { 0, };
#ifdef CONFIG_NET_FASTROUTE
int netdev_fastroute;
int netdev_fastroute_obstacles;
#endif
#ifdef CONFIG_SYSFS #ifdef CONFIG_SYSFS
extern int netdev_sysfs_init(void); extern int netdev_sysfs_init(void);
extern int netdev_register_sysfs(struct net_device *); extern int netdev_register_sysfs(struct net_device *);
...@@ -278,12 +273,6 @@ void dev_add_pack(struct packet_type *pt) ...@@ -278,12 +273,6 @@ void dev_add_pack(struct packet_type *pt)
int hash; int hash;
spin_lock_bh(&ptype_lock); spin_lock_bh(&ptype_lock);
#ifdef CONFIG_NET_FASTROUTE
if (pt->af_packet_priv) {
netdev_fastroute_obstacles++;
dev_clear_fastroute(pt->dev);
}
#endif
if (pt->type == htons(ETH_P_ALL)) { if (pt->type == htons(ETH_P_ALL)) {
netdev_nit++; netdev_nit++;
list_add_rcu(&pt->list, &ptype_all); list_add_rcu(&pt->list, &ptype_all);
...@@ -326,10 +315,6 @@ void __dev_remove_pack(struct packet_type *pt) ...@@ -326,10 +315,6 @@ void __dev_remove_pack(struct packet_type *pt)
list_for_each_entry(pt1, head, list) { list_for_each_entry(pt1, head, list) {
if (pt == pt1) { if (pt == pt1) {
#ifdef CONFIG_NET_FASTROUTE
if (pt->af_packet_priv)
netdev_fastroute_obstacles--;
#endif
list_del_rcu(&pt->list); list_del_rcu(&pt->list);
goto out; goto out;
} }
...@@ -971,39 +956,6 @@ int dev_open(struct net_device *dev) ...@@ -971,39 +956,6 @@ int dev_open(struct net_device *dev)
return ret; return ret;
} }
#ifdef CONFIG_NET_FASTROUTE
static void dev_do_clear_fastroute(struct net_device *dev)
{
if (dev->accept_fastpath) {
int i;
for (i = 0; i <= NETDEV_FASTROUTE_HMASK; i++) {
struct dst_entry *dst;
write_lock_irq(&dev->fastpath_lock);
dst = dev->fastpath[i];
dev->fastpath[i] = NULL;
write_unlock_irq(&dev->fastpath_lock);
dst_release(dst);
}
}
}
void dev_clear_fastroute(struct net_device *dev)
{
if (dev) {
dev_do_clear_fastroute(dev);
} else {
read_lock(&dev_base_lock);
for (dev = dev_base; dev; dev = dev->next)
dev_do_clear_fastroute(dev);
read_unlock(&dev_base_lock);
}
}
#endif
/** /**
* dev_close - shutdown an interface. * dev_close - shutdown an interface.
* @dev: device to shutdown * @dev: device to shutdown
...@@ -1056,9 +1008,6 @@ int dev_close(struct net_device *dev) ...@@ -1056,9 +1008,6 @@ int dev_close(struct net_device *dev)
*/ */
dev->flags &= ~IFF_UP; dev->flags &= ~IFF_UP;
#ifdef CONFIG_NET_FASTROUTE
dev_clear_fastroute(dev);
#endif
/* /*
* Tell people we are down * Tell people we are down
...@@ -1827,13 +1776,6 @@ int netif_receive_skb(struct sk_buff *skb) ...@@ -1827,13 +1776,6 @@ int netif_receive_skb(struct sk_buff *skb)
__get_cpu_var(netdev_rx_stat).total++; __get_cpu_var(netdev_rx_stat).total++;
#ifdef CONFIG_NET_FASTROUTE
if (skb->pkt_type == PACKET_FASTROUTE) {
__get_cpu_var(netdev_rx_stat).fastroute_deferred_out++;
return dev_queue_xmit(skb);
}
#endif
skb->h.raw = skb->nh.raw = skb->data; skb->h.raw = skb->nh.raw = skb->data;
skb->mac_len = skb->nh.raw - skb->mac.raw; skb->mac_len = skb->nh.raw - skb->mac.raw;
...@@ -2373,13 +2315,6 @@ void dev_set_promiscuity(struct net_device *dev, int inc) ...@@ -2373,13 +2315,6 @@ void dev_set_promiscuity(struct net_device *dev, int inc)
if ((dev->promiscuity += inc) == 0) if ((dev->promiscuity += inc) == 0)
dev->flags &= ~IFF_PROMISC; dev->flags &= ~IFF_PROMISC;
if (dev->flags ^ old_flags) { if (dev->flags ^ old_flags) {
#ifdef CONFIG_NET_FASTROUTE
if (dev->flags & IFF_PROMISC) {
netdev_fastroute_obstacles++;
dev_clear_fastroute(dev);
} else
netdev_fastroute_obstacles--;
#endif
dev_mc_upload(dev); dev_mc_upload(dev);
printk(KERN_INFO "device %s %s promiscuous mode\n", printk(KERN_INFO "device %s %s promiscuous mode\n",
dev->name, (dev->flags & IFF_PROMISC) ? "entered" : dev->name, (dev->flags & IFF_PROMISC) ? "entered" :
...@@ -2932,10 +2867,6 @@ int register_netdevice(struct net_device *dev) ...@@ -2932,10 +2867,6 @@ int register_netdevice(struct net_device *dev)
spin_lock_init(&dev->ingress_lock); spin_lock_init(&dev->ingress_lock);
#endif #endif
#ifdef CONFIG_NET_FASTROUTE
dev->fastpath_lock = RW_LOCK_UNLOCKED;
#endif
ret = alloc_divert_blk(dev); ret = alloc_divert_blk(dev);
if (ret) if (ret)
goto out; goto out;
...@@ -3254,10 +3185,6 @@ int unregister_netdevice(struct net_device *dev) ...@@ -3254,10 +3185,6 @@ int unregister_netdevice(struct net_device *dev)
synchronize_net(); synchronize_net();
#ifdef CONFIG_NET_FASTROUTE
dev_clear_fastroute(dev);
#endif
/* Shutdown queueing discipline. */ /* Shutdown queueing discipline. */
dev_shutdown(dev); dev_shutdown(dev);
...@@ -3460,10 +3387,6 @@ EXPORT_SYMBOL(netdev_fc_xoff); ...@@ -3460,10 +3387,6 @@ EXPORT_SYMBOL(netdev_fc_xoff);
EXPORT_SYMBOL(netdev_register_fc); EXPORT_SYMBOL(netdev_register_fc);
EXPORT_SYMBOL(netdev_unregister_fc); EXPORT_SYMBOL(netdev_unregister_fc);
#endif #endif
#ifdef CONFIG_NET_FASTROUTE
EXPORT_SYMBOL(netdev_fastroute);
EXPORT_SYMBOL(netdev_fastroute_obstacles);
#endif
#ifdef CONFIG_NET_CLS_ACT #ifdef CONFIG_NET_CLS_ACT
EXPORT_SYMBOL(ing_filter); EXPORT_SYMBOL(ing_filter);
......
...@@ -130,16 +130,6 @@ ctl_table core_table[] = { ...@@ -130,16 +130,6 @@ ctl_table core_table[] = {
.mode = 0644, .mode = 0644,
.proc_handler = &proc_dointvec .proc_handler = &proc_dointvec
}, },
#ifdef CONFIG_NET_FASTROUTE
{
.ctl_name = NET_CORE_FASTROUTE,
.procname = "netdev_fastroute",
.data = &netdev_fastroute,
.maxlen = sizeof(int),
.mode = 0644,
.proc_handler = &proc_dointvec
},
#endif
{ {
.ctl_name = NET_CORE_MSG_COST, .ctl_name = NET_CORE_MSG_COST,
.procname = "message_cost", .procname = "message_cost",
......
...@@ -1729,17 +1729,6 @@ static int ip_route_input_slow(struct sk_buff *skb, u32 daddr, u32 saddr, ...@@ -1729,17 +1729,6 @@ static int ip_route_input_slow(struct sk_buff *skb, u32 daddr, u32 saddr,
rth->rt_flags = flags; rth->rt_flags = flags;
#ifdef CONFIG_NET_FASTROUTE
if (netdev_fastroute && !(flags&(RTCF_NAT|RTCF_MASQ|RTCF_DOREDIRECT))) {
struct net_device *odev = rth->u.dst.dev;
if (odev != dev &&
dev->accept_fastpath &&
odev->mtu >= dev->mtu &&
dev->accept_fastpath(dev, &rth->u.dst) == 0)
rth->rt_flags |= RTCF_FAST;
}
#endif
intern: intern:
err = rt_intern_hash(hash, rth, (struct rtable**)&skb->dst); err = rt_intern_hash(hash, rth, (struct rtable**)&skb->dst);
done: done:
......
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