···1442144214431443#define LEC_ARP_REFRESH_INTERVAL (3*HZ)1444144414451445-static void lec_arp_check_expire(unsigned long data);14451445+static void lec_arp_check_expire(void *data);14461446static void lec_arp_expire_arp(unsigned long data);1447144714481448/* ···14651465 INIT_HLIST_HEAD(&priv->lec_no_forward);14661466 INIT_HLIST_HEAD(&priv->mcast_fwds);14671467 spin_lock_init(&priv->lec_arp_lock);14681468- init_timer(&priv->lec_arp_timer);14691469- priv->lec_arp_timer.expires = jiffies + LEC_ARP_REFRESH_INTERVAL;14701470- priv->lec_arp_timer.data = (unsigned long)priv;14711471- priv->lec_arp_timer.function = lec_arp_check_expire;14721472- add_timer(&priv->lec_arp_timer);14681468+ INIT_WORK(&priv->lec_arp_work, lec_arp_check_expire, priv);14691469+ schedule_delayed_work(&priv->lec_arp_work, LEC_ARP_REFRESH_INTERVAL);14731470}1474147114751472static void lec_arp_clear_vccs(struct lec_arp_table *entry)···17161719 struct lec_arp_table *entry;17171720 int i;1718172117191719- del_timer_sync(&priv->lec_arp_timer);17221722+ cancel_rearming_delayed_work(&priv->lec_arp_work);1720172317211724 /*17221725 * Remove all entries···18621865 * to ESI_FORWARD_DIRECT. This causes the flush period to end18631866 * regardless of the progress of the flush protocol.18641867 */18651865-static void lec_arp_check_expire(unsigned long data)18681868+static void lec_arp_check_expire(void *data)18661869{18671870 unsigned long flags;18681868- struct lec_priv *priv = (struct lec_priv *)data;18711871+ struct lec_priv *priv = data;18691872 struct hlist_node *node, *next;18701873 struct lec_arp_table *entry;18711874 unsigned long now;···19271930 }19281931 spin_unlock_irqrestore(&priv->lec_arp_lock, flags);1929193219301930- mod_timer(&priv->lec_arp_timer, jiffies + LEC_ARP_REFRESH_INTERVAL);19331933+ schedule_delayed_work(&priv->lec_arp_work, LEC_ARP_REFRESH_INTERVAL);19311934}1932193519331936/*
+1-1
net/atm/lec.h
···9393 spinlock_t lec_arp_lock;9494 struct atm_vcc *mcast_vcc; /* Default Multicast Send VCC */9595 struct atm_vcc *lecd;9696- struct timer_list lec_arp_timer; /* C10 */9696+ struct work_struct lec_arp_work; /* C10 */9797 unsigned int maximum_unknown_frame_count;9898 /*9999 * Within the period of time defined by this variable, the client will send