@@ -46,8 +46,6 @@
static struct net_device *clip_devs;
static struct atm_vcc *atmarpd;
-static struct neigh_table clip_tbl;
-static struct timer_list idle_timer;
static int to_atmarpd(enum atmarp_ctrl_type type, int itf, __be32 ip)
{
@@ -117,49 +115,6 @@ out:
netif_tx_unlock_bh(entry->neigh->dev);
}
-/* The neighbour entry n->lock is held. */
-static int neigh_check_cb(struct neighbour *n)
-{
- struct atmarp_entry *entry = neighbour_priv(n);
- struct clip_vcc *cv;
-
- for (cv = entry->vccs; cv; cv = cv->next) {
- unsigned long exp = cv->last_use + cv->idle_timeout;
-
- if (cv->idle_timeout && time_after(jiffies, exp)) {
- pr_debug("releasing vcc %p->%p of entry %p\n",
- cv, cv->vcc, entry);
- vcc_release_async(cv->vcc, -ETIMEDOUT);
- }
- }
-
- if (entry->vccs || time_before(jiffies, entry->expires))
- return 0;
-
- if (atomic_read(&n->refcnt) > 1) {
- struct sk_buff *skb;
-
- pr_debug("destruction postponed with ref %d\n",
- atomic_read(&n->refcnt));
-
- while ((skb = skb_dequeue(&n->arp_queue)) != NULL)
- dev_kfree_skb(skb);
-
- return 0;
- }
-
- pr_debug("expired neigh %p\n", n);
- return 1;
-}
-
-static void idle_timer_check(unsigned long dummy)
-{
- write_lock(&clip_tbl.lock);
- __neigh_for_each_release(&clip_tbl, neigh_check_cb);
- mod_timer(&idle_timer, jiffies + CLIP_CHECK_INTERVAL * HZ);
- write_unlock(&clip_tbl.lock);
-}
-
static int clip_arp_rcv(struct sk_buff *skb)
{
struct atm_vcc *vcc;
@@ -622,8 +577,6 @@ static int atm_init_atmarp(struct atm_vcc *vcc)
return -EADDRINUSE;
}
- mod_timer(&idle_timer, jiffies + CLIP_CHECK_INTERVAL * HZ);
-
atmarpd = vcc;
set_bit(ATM_VF_META, &vcc->flags);
set_bit(ATM_VF_READY, &vcc->flags);
@@ -871,7 +824,6 @@ static int __init atm_clip_init(void)
register_netdevice_notifier(&clip_dev_notifier);
register_inetaddr_notifier(&clip_inet_notifier);
- setup_timer(&idle_timer, idle_timer_check, 0);
#ifdef CONFIG_PROC_FS
{
@@ -898,11 +850,6 @@ static void atm_clip_exit_noproc(void)
deregister_atm_ioctl(&clip_ioctl_ops);
- /* First, stop the idle timer, so it stops banging
- * on the table.
- */
- del_timer_sync(&idle_timer);
-
dev = clip_devs;
while (dev) {
next = PRIV(dev)->next;