#define LEC_ARP_REFRESH_INTERVAL (3*HZ)
 
-static void lec_arp_check_expire(unsigned long data);
+static void lec_arp_check_expire(void *data);
 static void lec_arp_expire_arp(unsigned long data);
 
 /* 
         INIT_HLIST_HEAD(&priv->lec_no_forward);
         INIT_HLIST_HEAD(&priv->mcast_fwds);
        spin_lock_init(&priv->lec_arp_lock);
-       init_timer(&priv->lec_arp_timer);
-       priv->lec_arp_timer.expires = jiffies + LEC_ARP_REFRESH_INTERVAL;
-       priv->lec_arp_timer.data = (unsigned long)priv;
-       priv->lec_arp_timer.function = lec_arp_check_expire;
-       add_timer(&priv->lec_arp_timer);
+       INIT_WORK(&priv->lec_arp_work, lec_arp_check_expire, priv);
+       schedule_delayed_work(&priv->lec_arp_work, LEC_ARP_REFRESH_INTERVAL);
 }
 
 static void lec_arp_clear_vccs(struct lec_arp_table *entry)
        struct lec_arp_table *entry;
        int i;
 
-       del_timer_sync(&priv->lec_arp_timer);
+       cancel_rearming_delayed_work(&priv->lec_arp_work);
 
        /*
         * Remove all entries
  *       to ESI_FORWARD_DIRECT. This causes the flush period to end
  *       regardless of the progress of the flush protocol.
  */
-static void lec_arp_check_expire(unsigned long data)
+static void lec_arp_check_expire(void *data)
 {
        unsigned long flags;
-       struct lec_priv *priv = (struct lec_priv *)data;
+       struct lec_priv *priv = data;
        struct hlist_node *node, *next;
        struct lec_arp_table *entry;
        unsigned long now;
        }
        spin_unlock_irqrestore(&priv->lec_arp_lock, flags);
 
-       mod_timer(&priv->lec_arp_timer, jiffies + LEC_ARP_REFRESH_INTERVAL);
+       schedule_delayed_work(&priv->lec_arp_work, LEC_ARP_REFRESH_INTERVAL);
 }
 
 /*
 
        spinlock_t lec_arp_lock;
        struct atm_vcc *mcast_vcc;              /* Default Multicast Send VCC */
        struct atm_vcc *lecd;
-       struct timer_list lec_arp_timer;        /* C10 */
+       struct work_struct lec_arp_work;        /* C10 */
        unsigned int maximum_unknown_frame_count;
                                                /*
                                                 * Within the period of time defined by this variable, the client will send