[NET]: Convert init_timer into setup_timer

Many-many code in the kernel initialized the timer->function
and  timer->data together with calling init_timer(timer). There
is already a helper for this. Use it for networking code.

The patch is HUGE, but makes the code 130 lines shorter
(98 insertions(+), 228 deletions(-)).

Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Acked-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Pavel Emelyanov 2008-01-23 21:20:07 -08:00 committed by David S. Miller
parent a92aa318b4
commit b24b8a247f
47 changed files with 98 additions and 228 deletions

View file

@ -641,10 +641,8 @@ struct net_device *alloc_trdev(int sizeof_priv)
static int __init rif_init(void) static int __init rif_init(void)
{ {
init_timer(&rif_timer);
rif_timer.expires = jiffies + sysctl_tr_rif_timeout; rif_timer.expires = jiffies + sysctl_tr_rif_timeout;
rif_timer.data = 0L; setup_timer(&rif_timer, rif_check_expire, 0);
rif_timer.function = rif_check_expire;
add_timer(&rif_timer); add_timer(&rif_timer);
proc_net_fops_create(&init_net, "tr_rif", S_IRUGO, &rif_seq_fops); proc_net_fops_create(&init_net, "tr_rif", S_IRUGO, &rif_seq_fops);

View file

@ -874,9 +874,7 @@ void __init aarp_proto_init(void)
aarp_dl = register_snap_client(aarp_snap_id, aarp_rcv); aarp_dl = register_snap_client(aarp_snap_id, aarp_rcv);
if (!aarp_dl) if (!aarp_dl)
printk(KERN_CRIT "Unable to register AARP with SNAP.\n"); printk(KERN_CRIT "Unable to register AARP with SNAP.\n");
init_timer(&aarp_timer); setup_timer(&aarp_timer, aarp_expire_timeout, 0);
aarp_timer.function = aarp_expire_timeout;
aarp_timer.data = 0;
aarp_timer.expires = jiffies + sysctl_aarp_expiry_time; aarp_timer.expires = jiffies + sysctl_aarp_expiry_time;
add_timer(&aarp_timer); add_timer(&aarp_timer);
register_netdevice_notifier(&aarp_notifier); register_netdevice_notifier(&aarp_notifier);

View file

@ -177,10 +177,9 @@ static inline void atalk_destroy_socket(struct sock *sk)
if (atomic_read(&sk->sk_wmem_alloc) || if (atomic_read(&sk->sk_wmem_alloc) ||
atomic_read(&sk->sk_rmem_alloc)) { atomic_read(&sk->sk_rmem_alloc)) {
init_timer(&sk->sk_timer); setup_timer(&sk->sk_timer, atalk_destroy_timer,
(unsigned long)sk);
sk->sk_timer.expires = jiffies + SOCK_DESTROY_TIME; sk->sk_timer.expires = jiffies + SOCK_DESTROY_TIME;
sk->sk_timer.function = atalk_destroy_timer;
sk->sk_timer.data = (unsigned long)sk;
add_timer(&sk->sk_timer); add_timer(&sk->sk_timer);
} else } else
sock_put(sk); sock_put(sk);

View file

@ -1789,9 +1789,8 @@ static struct lec_arp_table *make_entry(struct lec_priv *priv,
} }
memcpy(to_return->mac_addr, mac_addr, ETH_ALEN); memcpy(to_return->mac_addr, mac_addr, ETH_ALEN);
INIT_HLIST_NODE(&to_return->next); INIT_HLIST_NODE(&to_return->next);
init_timer(&to_return->timer); setup_timer(&to_return->timer, lec_arp_expire_arp,
to_return->timer.function = lec_arp_expire_arp; (unsigned long)to_return);
to_return->timer.data = (unsigned long)to_return;
to_return->last_used = jiffies; to_return->last_used = jiffies;
to_return->priv = priv; to_return->priv = priv;
skb_queue_head_init(&to_return->tx_wait); skb_queue_head_init(&to_return->tx_wait);

View file

@ -330,10 +330,9 @@ void ax25_destroy_socket(ax25_cb *ax25)
if (atomic_read(&ax25->sk->sk_wmem_alloc) || if (atomic_read(&ax25->sk->sk_wmem_alloc) ||
atomic_read(&ax25->sk->sk_rmem_alloc)) { atomic_read(&ax25->sk->sk_rmem_alloc)) {
/* Defer: outstanding buffers */ /* Defer: outstanding buffers */
init_timer(&ax25->dtimer); setup_timer(&ax25->dtimer, ax25_destroy_timer,
(unsigned long)ax25);
ax25->dtimer.expires = jiffies + 2 * HZ; ax25->dtimer.expires = jiffies + 2 * HZ;
ax25->dtimer.function = ax25_destroy_timer;
ax25->dtimer.data = (unsigned long)ax25;
add_timer(&ax25->dtimer); add_timer(&ax25->dtimer);
} else { } else {
struct sock *sk=ax25->sk; struct sock *sk=ax25->sk;

View file

@ -208,13 +208,8 @@ struct hci_conn *hci_conn_add(struct hci_dev *hdev, int type, bdaddr_t *dst)
skb_queue_head_init(&conn->data_q); skb_queue_head_init(&conn->data_q);
init_timer(&conn->disc_timer); setup_timer(&conn->disc_timer, hci_conn_timeout, (unsigned long)conn);
conn->disc_timer.function = hci_conn_timeout; setup_timer(&conn->idle_timer, hci_conn_idle, (unsigned long)conn);
conn->disc_timer.data = (unsigned long) conn;
init_timer(&conn->idle_timer);
conn->idle_timer.function = hci_conn_idle;
conn->idle_timer.data = (unsigned long) conn;
atomic_set(&conn->refcnt, 0); atomic_set(&conn->refcnt, 0);

View file

@ -811,10 +811,7 @@ int hidp_add_connection(struct hidp_connadd_req *req, struct socket *ctrl_sock,
session->intr_sock = intr_sock; session->intr_sock = intr_sock;
session->state = BT_CONNECTED; session->state = BT_CONNECTED;
init_timer(&session->timer); setup_timer(&session->timer, hidp_idle_timeout, (unsigned long)session);
session->timer.function = hidp_idle_timeout;
session->timer.data = (unsigned long) session;
skb_queue_head_init(&session->ctrl_transmit); skb_queue_head_init(&session->ctrl_transmit);
skb_queue_head_init(&session->intr_transmit); skb_queue_head_init(&session->intr_transmit);

View file

@ -99,13 +99,6 @@ static void l2cap_sock_clear_timer(struct sock *sk)
sk_stop_timer(sk, &sk->sk_timer); sk_stop_timer(sk, &sk->sk_timer);
} }
static void l2cap_sock_init_timer(struct sock *sk)
{
init_timer(&sk->sk_timer);
sk->sk_timer.function = l2cap_sock_timeout;
sk->sk_timer.data = (unsigned long)sk;
}
/* ---- L2CAP channels ---- */ /* ---- L2CAP channels ---- */
static struct sock *__l2cap_get_chan_by_dcid(struct l2cap_chan_list *l, u16 cid) static struct sock *__l2cap_get_chan_by_dcid(struct l2cap_chan_list *l, u16 cid)
{ {
@ -395,9 +388,7 @@ static struct l2cap_conn *l2cap_conn_add(struct hci_conn *hcon, u8 status)
conn->feat_mask = 0; conn->feat_mask = 0;
init_timer(&conn->info_timer); setup_timer(&conn->info_timer, l2cap_info_timeout, (unsigned long)conn);
conn->info_timer.function = l2cap_info_timeout;
conn->info_timer.data = (unsigned long) conn;
spin_lock_init(&conn->lock); spin_lock_init(&conn->lock);
rwlock_init(&conn->chan_list.lock); rwlock_init(&conn->chan_list.lock);
@ -622,7 +613,7 @@ static struct sock *l2cap_sock_alloc(struct net *net, struct socket *sock, int p
sk->sk_protocol = proto; sk->sk_protocol = proto;
sk->sk_state = BT_OPEN; sk->sk_state = BT_OPEN;
l2cap_sock_init_timer(sk); setup_timer(&sk->sk_timer, l2cap_sock_timeout, (unsigned long)sk);
bt_sock_link(&l2cap_sk_list, sk); bt_sock_link(&l2cap_sk_list, sk);
return sk; return sk;

View file

@ -279,9 +279,7 @@ struct rfcomm_dlc *rfcomm_dlc_alloc(gfp_t prio)
if (!d) if (!d)
return NULL; return NULL;
init_timer(&d->timer); setup_timer(&d->timer, rfcomm_dlc_timeout, (unsigned long)d);
d->timer.function = rfcomm_dlc_timeout;
d->timer.data = (unsigned long) d;
skb_queue_head_init(&d->tx_queue); skb_queue_head_init(&d->tx_queue);
spin_lock_init(&d->lock); spin_lock_init(&d->lock);

View file

@ -97,13 +97,6 @@ static void sco_sock_clear_timer(struct sock *sk)
sk_stop_timer(sk, &sk->sk_timer); sk_stop_timer(sk, &sk->sk_timer);
} }
static void sco_sock_init_timer(struct sock *sk)
{
init_timer(&sk->sk_timer);
sk->sk_timer.function = sco_sock_timeout;
sk->sk_timer.data = (unsigned long)sk;
}
/* ---- SCO connections ---- */ /* ---- SCO connections ---- */
static struct sco_conn *sco_conn_add(struct hci_conn *hcon, __u8 status) static struct sco_conn *sco_conn_add(struct hci_conn *hcon, __u8 status)
{ {
@ -436,7 +429,7 @@ static struct sock *sco_sock_alloc(struct net *net, struct socket *sock, int pro
sk->sk_protocol = proto; sk->sk_protocol = proto;
sk->sk_state = BT_OPEN; sk->sk_state = BT_OPEN;
sco_sock_init_timer(sk); setup_timer(&sk->sk_timer, sco_sock_timeout, (unsigned long)sk);
bt_sock_link(&sco_sk_list, sk); bt_sock_link(&sco_sk_list, sk);
return sk; return sk;

View file

@ -352,8 +352,7 @@ static int __init flow_cache_init(void)
flow_lwm = 2 * flow_hash_size; flow_lwm = 2 * flow_hash_size;
flow_hwm = 4 * flow_hash_size; flow_hwm = 4 * flow_hash_size;
init_timer(&flow_hash_rnd_timer); setup_timer(&flow_hash_rnd_timer, flow_cache_new_hashrnd, 0);
flow_hash_rnd_timer.function = flow_cache_new_hashrnd;
flow_hash_rnd_timer.expires = jiffies + FLOW_HASH_RND_PERIOD; flow_hash_rnd_timer.expires = jiffies + FLOW_HASH_RND_PERIOD;
add_timer(&flow_hash_rnd_timer); add_timer(&flow_hash_rnd_timer);

View file

@ -270,9 +270,7 @@ static struct neighbour *neigh_alloc(struct neigh_table *tbl)
n->nud_state = NUD_NONE; n->nud_state = NUD_NONE;
n->output = neigh_blackhole; n->output = neigh_blackhole;
n->parms = neigh_parms_clone(&tbl->parms); n->parms = neigh_parms_clone(&tbl->parms);
init_timer(&n->timer); setup_timer(&n->timer, neigh_timer_handler, (unsigned long)n);
n->timer.function = neigh_timer_handler;
n->timer.data = (unsigned long)n;
NEIGH_CACHE_STAT_INC(tbl, allocs); NEIGH_CACHE_STAT_INC(tbl, allocs);
n->tbl = tbl; n->tbl = tbl;
@ -1372,15 +1370,11 @@ void neigh_table_init_no_netlink(struct neigh_table *tbl)
get_random_bytes(&tbl->hash_rnd, sizeof(tbl->hash_rnd)); get_random_bytes(&tbl->hash_rnd, sizeof(tbl->hash_rnd));
rwlock_init(&tbl->lock); rwlock_init(&tbl->lock);
init_timer(&tbl->gc_timer); setup_timer(&tbl->gc_timer, neigh_periodic_timer, (unsigned long)tbl);
tbl->gc_timer.data = (unsigned long)tbl;
tbl->gc_timer.function = neigh_periodic_timer;
tbl->gc_timer.expires = now + 1; tbl->gc_timer.expires = now + 1;
add_timer(&tbl->gc_timer); add_timer(&tbl->gc_timer);
init_timer(&tbl->proxy_timer); setup_timer(&tbl->proxy_timer, neigh_proxy_process, (unsigned long)tbl);
tbl->proxy_timer.data = (unsigned long)tbl;
tbl->proxy_timer.function = neigh_proxy_process;
skb_queue_head_init_class(&tbl->proxy_queue, skb_queue_head_init_class(&tbl->proxy_queue,
&neigh_table_proxy_queue_class); &neigh_table_proxy_queue_class);

View file

@ -760,10 +760,8 @@ static int ccid2_hc_tx_init(struct ccid *ccid, struct sock *sk)
hctx->ccid2hctx_rttvar = -1; hctx->ccid2hctx_rttvar = -1;
hctx->ccid2hctx_rpdupack = -1; hctx->ccid2hctx_rpdupack = -1;
hctx->ccid2hctx_last_cong = jiffies; hctx->ccid2hctx_last_cong = jiffies;
setup_timer(&hctx->ccid2hctx_rtotimer, ccid2_hc_tx_rto_expire,
hctx->ccid2hctx_rtotimer.function = &ccid2_hc_tx_rto_expire; (unsigned long)sk);
hctx->ccid2hctx_rtotimer.data = (unsigned long)sk;
init_timer(&hctx->ccid2hctx_rtotimer);
ccid2_hc_tx_check_sanity(hctx); ccid2_hc_tx_check_sanity(hctx);
return 0; return 0;

View file

@ -606,11 +606,8 @@ static int ccid3_hc_tx_init(struct ccid *ccid, struct sock *sk)
hctx->ccid3hctx_state = TFRC_SSTATE_NO_SENT; hctx->ccid3hctx_state = TFRC_SSTATE_NO_SENT;
INIT_LIST_HEAD(&hctx->ccid3hctx_hist); INIT_LIST_HEAD(&hctx->ccid3hctx_hist);
setup_timer(&hctx->ccid3hctx_no_feedback_timer,
hctx->ccid3hctx_no_feedback_timer.function = ccid3_hc_tx_no_feedback_timer, (unsigned long)sk);
ccid3_hc_tx_no_feedback_timer;
hctx->ccid3hctx_no_feedback_timer.data = (unsigned long)sk;
init_timer(&hctx->ccid3hctx_no_feedback_timer);
return 0; return 0;
} }

View file

@ -280,9 +280,8 @@ static void dccp_init_write_xmit_timer(struct sock *sk)
{ {
struct dccp_sock *dp = dccp_sk(sk); struct dccp_sock *dp = dccp_sk(sk);
init_timer(&dp->dccps_xmit_timer); setup_timer(&dp->dccps_xmit_timer, dccp_write_xmit_timer,
dp->dccps_xmit_timer.data = (unsigned long)sk; (unsigned long)sk);
dp->dccps_xmit_timer.function = dccp_write_xmit_timer;
} }
void dccp_init_xmit_timers(struct sock *sk) void dccp_init_xmit_timers(struct sock *sk)

View file

@ -1752,8 +1752,7 @@ void __init dn_route_init(void)
dn_dst_ops.kmem_cachep = dn_dst_ops.kmem_cachep =
kmem_cache_create("dn_dst_cache", sizeof(struct dn_route), 0, kmem_cache_create("dn_dst_cache", sizeof(struct dn_route), 0,
SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL); SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
init_timer(&dn_route_timer); setup_timer(&dn_route_timer, dn_dst_check_expire, 0);
dn_route_timer.function = dn_dst_check_expire;
dn_route_timer.expires = jiffies + decnet_dst_gc_interval * HZ; dn_route_timer.expires = jiffies + decnet_dst_gc_interval * HZ;
add_timer(&dn_route_timer); add_timer(&dn_route_timer);

View file

@ -1014,9 +1014,8 @@ static int __init aun_udp_initialise(void)
skb_queue_head_init(&aun_queue); skb_queue_head_init(&aun_queue);
spin_lock_init(&aun_queue_lock); spin_lock_init(&aun_queue_lock);
init_timer(&ab_cleanup_timer); setup_timer(&ab_cleanup_timer, ab_cleanup, 0);
ab_cleanup_timer.expires = jiffies + (HZ*2); ab_cleanup_timer.expires = jiffies + (HZ*2);
ab_cleanup_timer.function = ab_cleanup;
add_timer(&ab_cleanup_timer); add_timer(&ab_cleanup_timer);
memset(&sin, 0, sizeof(sin)); memset(&sin, 0, sizeof(sin));

View file

@ -181,9 +181,8 @@ struct net_device *alloc_ieee80211(int sizeof_priv)
ieee->ieee802_1x = 1; /* Default to supporting 802.1x */ ieee->ieee802_1x = 1; /* Default to supporting 802.1x */
INIT_LIST_HEAD(&ieee->crypt_deinit_list); INIT_LIST_HEAD(&ieee->crypt_deinit_list);
init_timer(&ieee->crypt_deinit_timer); setup_timer(&ieee->crypt_deinit_timer, ieee80211_crypt_deinit_handler,
ieee->crypt_deinit_timer.data = (unsigned long)ieee; (unsigned long)ieee);
ieee->crypt_deinit_timer.function = ieee80211_crypt_deinit_handler;
ieee->crypt_quiesced = 0; ieee->crypt_quiesced = 0;
spin_lock_init(&ieee->lock); spin_lock_init(&ieee->lock);

View file

@ -1234,9 +1234,7 @@ void ip_mc_inc_group(struct in_device *in_dev, __be32 addr)
spin_lock_init(&im->lock); spin_lock_init(&im->lock);
#ifdef CONFIG_IP_MULTICAST #ifdef CONFIG_IP_MULTICAST
im->tm_running=0; im->tm_running=0;
init_timer(&im->timer); setup_timer(&im->timer, &igmp_timer_expire, (unsigned long)im);
im->timer.data=(unsigned long)im;
im->timer.function=&igmp_timer_expire;
im->unsolicit_count = IGMP_Unsolicited_Report_Count; im->unsolicit_count = IGMP_Unsolicited_Report_Count;
im->reporter = 0; im->reporter = 0;
im->gsquery = 0; im->gsquery = 0;
@ -1338,13 +1336,11 @@ void ip_mc_init_dev(struct in_device *in_dev)
in_dev->mc_tomb = NULL; in_dev->mc_tomb = NULL;
#ifdef CONFIG_IP_MULTICAST #ifdef CONFIG_IP_MULTICAST
in_dev->mr_gq_running = 0; in_dev->mr_gq_running = 0;
init_timer(&in_dev->mr_gq_timer); setup_timer(&in_dev->mr_gq_timer, igmp_gq_timer_expire,
in_dev->mr_gq_timer.data=(unsigned long) in_dev; (unsigned long)in_dev);
in_dev->mr_gq_timer.function=&igmp_gq_timer_expire;
in_dev->mr_ifc_count = 0; in_dev->mr_ifc_count = 0;
init_timer(&in_dev->mr_ifc_timer); setup_timer(&in_dev->mr_ifc_timer, igmp_ifc_timer_expire,
in_dev->mr_ifc_timer.data=(unsigned long) in_dev; (unsigned long)in_dev);
in_dev->mr_ifc_timer.function=&igmp_ifc_timer_expire;
in_dev->mr_qrv = IGMP_Unsolicited_Report_Count; in_dev->mr_qrv = IGMP_Unsolicited_Report_Count;
#endif #endif

View file

@ -277,18 +277,11 @@ void inet_csk_init_xmit_timers(struct sock *sk,
{ {
struct inet_connection_sock *icsk = inet_csk(sk); struct inet_connection_sock *icsk = inet_csk(sk);
init_timer(&icsk->icsk_retransmit_timer); setup_timer(&icsk->icsk_retransmit_timer, retransmit_handler,
init_timer(&icsk->icsk_delack_timer); (unsigned long)sk);
init_timer(&sk->sk_timer); setup_timer(&icsk->icsk_delack_timer, delack_handler,
(unsigned long)sk);
icsk->icsk_retransmit_timer.function = retransmit_handler; setup_timer(&sk->sk_timer, keepalive_handler, (unsigned long)sk);
icsk->icsk_delack_timer.function = delack_handler;
sk->sk_timer.function = keepalive_handler;
icsk->icsk_retransmit_timer.data =
icsk->icsk_delack_timer.data =
sk->sk_timer.data = (unsigned long)sk;
icsk->icsk_pending = icsk->icsk_ack.pending = 0; icsk->icsk_pending = icsk->icsk_ack.pending = 0;
} }

View file

@ -66,9 +66,8 @@ void inet_frags_init(struct inet_frags *f)
f->nqueues = 0; f->nqueues = 0;
atomic_set(&f->mem, 0); atomic_set(&f->mem, 0);
init_timer(&f->secret_timer); setup_timer(&f->secret_timer, inet_frag_secret_rebuild,
f->secret_timer.function = inet_frag_secret_rebuild; (unsigned long)f);
f->secret_timer.data = (unsigned long)f;
f->secret_timer.expires = jiffies + f->ctl->secret_interval; f->secret_timer.expires = jiffies + f->ctl->secret_interval;
add_timer(&f->secret_timer); add_timer(&f->secret_timer);
} }

View file

@ -1889,8 +1889,7 @@ void __init ip_mr_init(void)
sizeof(struct mfc_cache), sizeof(struct mfc_cache),
0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC,
NULL); NULL);
init_timer(&ipmr_expire_timer); setup_timer(&ipmr_expire_timer, ipmr_expire_process, 0);
ipmr_expire_timer.function=ipmr_expire_process;
register_netdevice_notifier(&ip_mr_notifier); register_netdevice_notifier(&ip_mr_notifier);
#ifdef CONFIG_PROC_FS #ifdef CONFIG_PROC_FS
proc_net_fops_create(&init_net, "ip_mr_vif", 0, &ipmr_vif_fops); proc_net_fops_create(&init_net, "ip_mr_vif", 0, &ipmr_vif_fops);

View file

@ -629,9 +629,7 @@ ip_vs_conn_new(int proto, __be32 caddr, __be16 cport, __be32 vaddr, __be16 vport
} }
INIT_LIST_HEAD(&cp->c_list); INIT_LIST_HEAD(&cp->c_list);
init_timer(&cp->timer); setup_timer(&cp->timer, ip_vs_conn_expire, (unsigned long)cp);
cp->timer.data = (unsigned long)cp;
cp->timer.function = ip_vs_conn_expire;
cp->protocol = proto; cp->protocol = proto;
cp->caddr = caddr; cp->caddr = caddr;
cp->cport = cport; cp->cport = cport;

View file

@ -146,9 +146,8 @@ int ip_vs_new_estimator(struct ip_vs_stats *stats)
write_lock_bh(&est_lock); write_lock_bh(&est_lock);
est->next = est_list; est->next = est_list;
if (est->next == NULL) { if (est->next == NULL) {
init_timer(&est_timer); setup_timer(&est_timer, estimation_timer, 0);
est_timer.expires = jiffies + 2*HZ; est_timer.expires = jiffies + 2*HZ;
est_timer.function = estimation_timer;
add_timer(&est_timer); add_timer(&est_timer);
} }
est_list = est; est_list = est;

View file

@ -391,9 +391,8 @@ static int ip_vs_lblc_init_svc(struct ip_vs_service *svc)
/* /*
* Hook periodic timer for garbage collection * Hook periodic timer for garbage collection
*/ */
init_timer(&tbl->periodic_timer); setup_timer(&tbl->periodic_timer, ip_vs_lblc_check_expire,
tbl->periodic_timer.data = (unsigned long)tbl; (unsigned long)tbl);
tbl->periodic_timer.function = ip_vs_lblc_check_expire;
tbl->periodic_timer.expires = jiffies+CHECK_EXPIRE_INTERVAL; tbl->periodic_timer.expires = jiffies+CHECK_EXPIRE_INTERVAL;
add_timer(&tbl->periodic_timer); add_timer(&tbl->periodic_timer);

View file

@ -575,9 +575,8 @@ static int ip_vs_lblcr_init_svc(struct ip_vs_service *svc)
/* /*
* Hook periodic timer for garbage collection * Hook periodic timer for garbage collection
*/ */
init_timer(&tbl->periodic_timer); setup_timer(&tbl->periodic_timer, ip_vs_lblcr_check_expire,
tbl->periodic_timer.data = (unsigned long)tbl; (unsigned long)tbl);
tbl->periodic_timer.function = ip_vs_lblcr_check_expire;
tbl->periodic_timer.expires = jiffies+CHECK_EXPIRE_INTERVAL; tbl->periodic_timer.expires = jiffies+CHECK_EXPIRE_INTERVAL;
add_timer(&tbl->periodic_timer); add_timer(&tbl->periodic_timer);

View file

@ -2964,10 +2964,8 @@ int __init ip_rt_init(void)
devinet_init(); devinet_init();
ip_fib_init(); ip_fib_init();
init_timer(&rt_flush_timer); setup_timer(&rt_flush_timer, rt_run_flush, 0);
rt_flush_timer.function = rt_run_flush; setup_timer(&rt_secret_timer, rt_secret_rebuild, 0);
init_timer(&rt_secret_timer);
rt_secret_timer.function = rt_secret_rebuild;
/* All the timers, started at system startup tend /* All the timers, started at system startup tend
to synchronize. Perturb it a bit. to synchronize. Perturb it a bit.

View file

@ -366,9 +366,7 @@ static struct inet6_dev * ipv6_add_dev(struct net_device *dev)
in6_dev_hold(ndev); in6_dev_hold(ndev);
#ifdef CONFIG_IPV6_PRIVACY #ifdef CONFIG_IPV6_PRIVACY
init_timer(&ndev->regen_timer); setup_timer(&ndev->regen_timer, ipv6_regen_rndid, (unsigned long)ndev);
ndev->regen_timer.function = ipv6_regen_rndid;
ndev->regen_timer.data = (unsigned long) ndev;
if ((dev->flags&IFF_LOOPBACK) || if ((dev->flags&IFF_LOOPBACK) ||
dev->type == ARPHRD_TUNNEL || dev->type == ARPHRD_TUNNEL ||
#if defined(CONFIG_IPV6_SIT) || defined(CONFIG_IPV6_SIT_MODULE) #if defined(CONFIG_IPV6_SIT) || defined(CONFIG_IPV6_SIT_MODULE)

View file

@ -903,9 +903,7 @@ int ipv6_dev_mc_inc(struct net_device *dev, struct in6_addr *addr)
return -ENOMEM; return -ENOMEM;
} }
init_timer(&mc->mca_timer); setup_timer(&mc->mca_timer, igmp6_timer_handler, (unsigned long)mc);
mc->mca_timer.function = igmp6_timer_handler;
mc->mca_timer.data = (unsigned long) mc;
ipv6_addr_copy(&mc->mca_addr, addr); ipv6_addr_copy(&mc->mca_addr, addr);
mc->idev = idev; mc->idev = idev;
@ -2259,14 +2257,12 @@ void ipv6_mc_init_dev(struct inet6_dev *idev)
write_lock_bh(&idev->lock); write_lock_bh(&idev->lock);
rwlock_init(&idev->mc_lock); rwlock_init(&idev->mc_lock);
idev->mc_gq_running = 0; idev->mc_gq_running = 0;
init_timer(&idev->mc_gq_timer); setup_timer(&idev->mc_gq_timer, mld_gq_timer_expire,
idev->mc_gq_timer.data = (unsigned long) idev; (unsigned long)idev);
idev->mc_gq_timer.function = &mld_gq_timer_expire;
idev->mc_tomb = NULL; idev->mc_tomb = NULL;
idev->mc_ifc_count = 0; idev->mc_ifc_count = 0;
init_timer(&idev->mc_ifc_timer); setup_timer(&idev->mc_ifc_timer, mld_ifc_timer_expire,
idev->mc_ifc_timer.data = (unsigned long) idev; (unsigned long)idev);
idev->mc_ifc_timer.function = &mld_ifc_timer_expire;
idev->mc_qrv = MLD_QRV_DEFAULT; idev->mc_qrv = MLD_QRV_DEFAULT;
idev->mc_maxdelay = IGMP6_UNSOLICITED_IVAL; idev->mc_maxdelay = IGMP6_UNSOLICITED_IVAL;
idev->mc_v1_seen = 0; idev->mc_v1_seen = 0;

View file

@ -2410,9 +2410,8 @@ bed:
/* Set watchdog timer to expire in <val> ms. */ /* Set watchdog timer to expire in <val> ms. */
self->errno = 0; self->errno = 0;
init_timer(&self->watchdog); setup_timer(&self->watchdog, irda_discovery_timeout,
self->watchdog.function = irda_discovery_timeout; (unsigned long)self);
self->watchdog.data = (unsigned long) self;
self->watchdog.expires = jiffies + (val * HZ/1000); self->watchdog.expires = jiffies + (val * HZ/1000);
add_timer(&(self->watchdog)); add_timer(&(self->watchdog));

View file

@ -94,13 +94,6 @@ static void iucv_sock_clear_timer(struct sock *sk)
sk_stop_timer(sk, &sk->sk_timer); sk_stop_timer(sk, &sk->sk_timer);
} }
static void iucv_sock_init_timer(struct sock *sk)
{
init_timer(&sk->sk_timer);
sk->sk_timer.function = iucv_sock_timeout;
sk->sk_timer.data = (unsigned long)sk;
}
static struct sock *__iucv_get_sock_by_name(char *nm) static struct sock *__iucv_get_sock_by_name(char *nm)
{ {
struct sock *sk; struct sock *sk;
@ -238,7 +231,7 @@ static struct sock *iucv_sock_alloc(struct socket *sock, int proto, gfp_t prio)
sk->sk_protocol = proto; sk->sk_protocol = proto;
sk->sk_state = IUCV_OPEN; sk->sk_state = IUCV_OPEN;
iucv_sock_init_timer(sk); setup_timer(&sk->sk_timer, iucv_sock_timeout, (unsigned long)sk);
iucv_sock_link(&iucv_sk_list, sk); iucv_sock_link(&iucv_sk_list, sk);
return sk; return sk;

View file

@ -831,25 +831,21 @@ static void llc_sk_init(struct sock* sk)
llc->inc_cntr = llc->dec_cntr = 2; llc->inc_cntr = llc->dec_cntr = 2;
llc->dec_step = llc->connect_step = 1; llc->dec_step = llc->connect_step = 1;
init_timer(&llc->ack_timer.timer); setup_timer(&llc->ack_timer.timer, llc_conn_ack_tmr_cb,
(unsigned long)sk);
llc->ack_timer.expire = sysctl_llc2_ack_timeout; llc->ack_timer.expire = sysctl_llc2_ack_timeout;
llc->ack_timer.timer.data = (unsigned long)sk;
llc->ack_timer.timer.function = llc_conn_ack_tmr_cb;
init_timer(&llc->pf_cycle_timer.timer); setup_timer(&llc->pf_cycle_timer.timer, llc_conn_pf_cycle_tmr_cb,
(unsigned long)sk);
llc->pf_cycle_timer.expire = sysctl_llc2_p_timeout; llc->pf_cycle_timer.expire = sysctl_llc2_p_timeout;
llc->pf_cycle_timer.timer.data = (unsigned long)sk;
llc->pf_cycle_timer.timer.function = llc_conn_pf_cycle_tmr_cb;
init_timer(&llc->rej_sent_timer.timer); setup_timer(&llc->rej_sent_timer.timer, llc_conn_rej_tmr_cb,
(unsigned long)sk);
llc->rej_sent_timer.expire = sysctl_llc2_rej_timeout; llc->rej_sent_timer.expire = sysctl_llc2_rej_timeout;
llc->rej_sent_timer.timer.data = (unsigned long)sk;
llc->rej_sent_timer.timer.function = llc_conn_rej_tmr_cb;
init_timer(&llc->busy_state_timer.timer); setup_timer(&llc->busy_state_timer.timer, llc_conn_busy_tmr_cb,
(unsigned long)sk);
llc->busy_state_timer.expire = sysctl_llc2_busy_timeout; llc->busy_state_timer.expire = sysctl_llc2_busy_timeout;
llc->busy_state_timer.timer.data = (unsigned long)sk;
llc->busy_state_timer.timer.function = llc_conn_busy_tmr_cb;
llc->n2 = 2; /* max retransmit */ llc->n2 = 2; /* max retransmit */
llc->k = 2; /* tx win size, will adjust dynam */ llc->k = 2; /* tx win size, will adjust dynam */

View file

@ -688,9 +688,8 @@ int __init llc_station_init(void)
skb_queue_head_init(&llc_main_station.mac_pdu_q); skb_queue_head_init(&llc_main_station.mac_pdu_q);
skb_queue_head_init(&llc_main_station.ev_q.list); skb_queue_head_init(&llc_main_station.ev_q.list);
spin_lock_init(&llc_main_station.ev_q.lock); spin_lock_init(&llc_main_station.ev_q.lock);
init_timer(&llc_main_station.ack_timer); setup_timer(&llc_main_station.ack_timer, llc_station_ack_tmr_cb,
llc_main_station.ack_timer.data = (unsigned long)&llc_main_station; (unsigned long)&llc_main_station);
llc_main_station.ack_timer.function = llc_station_ack_tmr_cb;
llc_main_station.ack_timer.expires = jiffies + llc_main_station.ack_timer.expires = jiffies +
sysctl_llc_station_ack_timeout; sysctl_llc_station_ack_timeout;
skb = alloc_skb(0, GFP_ATOMIC); skb = alloc_skb(0, GFP_ATOMIC);

View file

@ -346,11 +346,10 @@ void sta_info_init(struct ieee80211_local *local)
rwlock_init(&local->sta_lock); rwlock_init(&local->sta_lock);
INIT_LIST_HEAD(&local->sta_list); INIT_LIST_HEAD(&local->sta_list);
init_timer(&local->sta_cleanup); setup_timer(&local->sta_cleanup, sta_info_cleanup,
(unsigned long)local);
local->sta_cleanup.expires = local->sta_cleanup.expires =
round_jiffies(jiffies + STA_INFO_CLEANUP_INTERVAL); round_jiffies(jiffies + STA_INFO_CLEANUP_INTERVAL);
local->sta_cleanup.data = (unsigned long) local;
local->sta_cleanup.function = sta_info_cleanup;
#ifdef CONFIG_MAC80211_DEBUGFS #ifdef CONFIG_MAC80211_DEBUGFS
INIT_WORK(&local->sta_debugfs_add, sta_info_debugfs_add_task); INIT_WORK(&local->sta_debugfs_add, sta_info_debugfs_add_task);

View file

@ -40,21 +40,10 @@ void nr_init_timers(struct sock *sk)
{ {
struct nr_sock *nr = nr_sk(sk); struct nr_sock *nr = nr_sk(sk);
init_timer(&nr->t1timer); setup_timer(&nr->t1timer, nr_t1timer_expiry, (unsigned long)sk);
nr->t1timer.data = (unsigned long)sk; setup_timer(&nr->t2timer, nr_t2timer_expiry, (unsigned long)sk);
nr->t1timer.function = &nr_t1timer_expiry; setup_timer(&nr->t4timer, nr_t4timer_expiry, (unsigned long)sk);
setup_timer(&nr->idletimer, nr_idletimer_expiry, (unsigned long)sk);
init_timer(&nr->t2timer);
nr->t2timer.data = (unsigned long)sk;
nr->t2timer.function = &nr_t2timer_expiry;
init_timer(&nr->t4timer);
nr->t4timer.data = (unsigned long)sk;
nr->t4timer.function = &nr_t4timer_expiry;
init_timer(&nr->idletimer);
nr->idletimer.data = (unsigned long)sk;
nr->idletimer.function = &nr_idletimer_expiry;
/* initialized by sock_init_data */ /* initialized by sock_init_data */
sk->sk_timer.data = (unsigned long)sk; sk->sk_timer.data = (unsigned long)sk;

View file

@ -345,10 +345,9 @@ void rose_destroy_socket(struct sock *sk)
if (atomic_read(&sk->sk_wmem_alloc) || if (atomic_read(&sk->sk_wmem_alloc) ||
atomic_read(&sk->sk_rmem_alloc)) { atomic_read(&sk->sk_rmem_alloc)) {
/* Defer: outstanding buffers */ /* Defer: outstanding buffers */
init_timer(&sk->sk_timer); setup_timer(&sk->sk_timer, rose_destroy_timer,
(unsigned long)sk);
sk->sk_timer.expires = jiffies + 10 * HZ; sk->sk_timer.expires = jiffies + 10 * HZ;
sk->sk_timer.function = rose_destroy_timer;
sk->sk_timer.data = (unsigned long)sk;
add_timer(&sk->sk_timer); add_timer(&sk->sk_timer);
} else } else
sock_put(sk); sock_put(sk);

View file

@ -211,13 +211,6 @@ static void dev_watchdog(unsigned long arg)
dev_put(dev); dev_put(dev);
} }
static void dev_watchdog_init(struct net_device *dev)
{
init_timer(&dev->watchdog_timer);
dev->watchdog_timer.data = (unsigned long)dev;
dev->watchdog_timer.function = dev_watchdog;
}
void __netdev_watchdog_up(struct net_device *dev) void __netdev_watchdog_up(struct net_device *dev)
{ {
if (dev->tx_timeout) { if (dev->tx_timeout) {
@ -608,7 +601,7 @@ void dev_init_scheduler(struct net_device *dev)
INIT_LIST_HEAD(&dev->qdisc_list); INIT_LIST_HEAD(&dev->qdisc_list);
qdisc_unlock_tree(dev); qdisc_unlock_tree(dev);
dev_watchdog_init(dev); setup_timer(&dev->watchdog_timer, dev_watchdog, (unsigned long)dev);
} }
void dev_shutdown(struct net_device *dev) void dev_shutdown(struct net_device *dev)

View file

@ -426,9 +426,7 @@ static int sfq_init(struct Qdisc *sch, struct rtattr *opt)
struct sfq_sched_data *q = qdisc_priv(sch); struct sfq_sched_data *q = qdisc_priv(sch);
int i; int i;
init_timer(&q->perturb_timer); setup_timer(&q->perturb_timer, sfq_perturbation, (unsigned long)sch);
q->perturb_timer.data = (unsigned long)sch;
q->perturb_timer.function = sfq_perturbation;
for (i=0; i<SFQ_HASH_DIVISOR; i++) for (i=0; i<SFQ_HASH_DIVISOR; i++)
q->ht[i] = SFQ_DEPTH; q->ht[i] = SFQ_DEPTH;

View file

@ -167,11 +167,9 @@ static struct sctp_association *sctp_association_init(struct sctp_association *a
sp->autoclose * HZ; sp->autoclose * HZ;
/* Initilizes the timers */ /* Initilizes the timers */
for (i = SCTP_EVENT_TIMEOUT_NONE; i < SCTP_NUM_TIMEOUT_TYPES; ++i) { for (i = SCTP_EVENT_TIMEOUT_NONE; i < SCTP_NUM_TIMEOUT_TYPES; ++i)
init_timer(&asoc->timers[i]); setup_timer(&asoc->timers[i], sctp_timer_events[i],
asoc->timers[i].function = sctp_timer_events[i]; (unsigned long)asoc);
asoc->timers[i].data = (unsigned long) asoc;
}
/* Pull default initialization values from the sock options. /* Pull default initialization values from the sock options.
* Note: This assumes that the values have already been * Note: This assumes that the values have already been

View file

@ -99,15 +99,10 @@ static struct sctp_transport *sctp_transport_init(struct sctp_transport *peer,
INIT_LIST_HEAD(&peer->send_ready); INIT_LIST_HEAD(&peer->send_ready);
INIT_LIST_HEAD(&peer->transports); INIT_LIST_HEAD(&peer->transports);
/* Set up the retransmission timer. */ setup_timer(&peer->T3_rtx_timer, sctp_generate_t3_rtx_event,
init_timer(&peer->T3_rtx_timer); (unsigned long)peer);
peer->T3_rtx_timer.function = sctp_generate_t3_rtx_event; setup_timer(&peer->hb_timer, sctp_generate_heartbeat_event,
peer->T3_rtx_timer.data = (unsigned long)peer; (unsigned long)peer);
/* Set up the heartbeat timer. */
init_timer(&peer->hb_timer);
peer->hb_timer.function = sctp_generate_heartbeat_event;
peer->hb_timer.data = (unsigned long)peer;
/* Initialize the 64-bit random nonce sent with heartbeat. */ /* Initialize the 64-bit random nonce sent with heartbeat. */
get_random_bytes(&peer->hb_nonce, sizeof(peer->hb_nonce)); get_random_bytes(&peer->hb_nonce, sizeof(peer->hb_nonce));

View file

@ -811,9 +811,8 @@ EXPORT_SYMBOL_GPL(rpc_free);
void rpc_init_task(struct rpc_task *task, struct rpc_clnt *clnt, int flags, const struct rpc_call_ops *tk_ops, void *calldata) void rpc_init_task(struct rpc_task *task, struct rpc_clnt *clnt, int flags, const struct rpc_call_ops *tk_ops, void *calldata)
{ {
memset(task, 0, sizeof(*task)); memset(task, 0, sizeof(*task));
init_timer(&task->tk_timer); setup_timer(&task->tk_timer, (void (*)(unsigned long))rpc_run_timer,
task->tk_timer.data = (unsigned long) task; (unsigned long)task);
task->tk_timer.function = (void (*)(unsigned long)) rpc_run_timer;
atomic_set(&task->tk_count, 1); atomic_set(&task->tk_count, 1);
task->tk_client = clnt; task->tk_client = clnt;
task->tk_flags = flags; task->tk_flags = flags;

View file

@ -1011,9 +1011,8 @@ found:
INIT_LIST_HEAD(&xprt->free); INIT_LIST_HEAD(&xprt->free);
INIT_LIST_HEAD(&xprt->recv); INIT_LIST_HEAD(&xprt->recv);
INIT_WORK(&xprt->task_cleanup, xprt_autoclose); INIT_WORK(&xprt->task_cleanup, xprt_autoclose);
init_timer(&xprt->timer); setup_timer(&xprt->timer, xprt_init_autodisconnect,
xprt->timer.function = xprt_init_autodisconnect; (unsigned long)xprt);
xprt->timer.data = (unsigned long) xprt;
xprt->last_used = jiffies; xprt->last_used = jiffies;
xprt->cwnd = RPC_INITCWND; xprt->cwnd = RPC_INITCWND;
xprt->bind_index = 0; xprt->bind_index = 0;

View file

@ -212,9 +212,7 @@ static inline void k_init_timer(struct timer_list *timer, Handler routine,
unsigned long argument) unsigned long argument)
{ {
dbg("initializing timer %p\n", timer); dbg("initializing timer %p\n", timer);
init_timer(timer); setup_timer(timer, routine, argument);
timer->function = routine;
timer->data = argument;
} }
/** /**

View file

@ -247,10 +247,7 @@ void x25_link_device_up(struct net_device *dev)
return; return;
skb_queue_head_init(&nb->queue); skb_queue_head_init(&nb->queue);
setup_timer(&nb->t20timer, x25_t20timer_expiry, (unsigned long)nb);
init_timer(&nb->t20timer);
nb->t20timer.data = (unsigned long)nb;
nb->t20timer.function = &x25_t20timer_expiry;
dev_hold(dev); dev_hold(dev);
nb->dev = dev; nb->dev = dev;

View file

@ -33,9 +33,7 @@ void x25_init_timers(struct sock *sk)
{ {
struct x25_sock *x25 = x25_sk(sk); struct x25_sock *x25 = x25_sk(sk);
init_timer(&x25->timer); setup_timer(&x25->timer, x25_timer_expiry, (unsigned long)sk);
x25->timer.data = (unsigned long)sk;
x25->timer.function = &x25_timer_expiry;
/* initialized by sock_init_data */ /* initialized by sock_init_data */
sk->sk_timer.data = (unsigned long)sk; sk->sk_timer.data = (unsigned long)sk;

View file

@ -196,9 +196,8 @@ struct xfrm_policy *xfrm_policy_alloc(gfp_t gfp)
INIT_HLIST_NODE(&policy->byidx); INIT_HLIST_NODE(&policy->byidx);
rwlock_init(&policy->lock); rwlock_init(&policy->lock);
atomic_set(&policy->refcnt, 1); atomic_set(&policy->refcnt, 1);
init_timer(&policy->timer); setup_timer(&policy->timer, xfrm_policy_timer,
policy->timer.data = (unsigned long)policy; (unsigned long)policy);
policy->timer.function = xfrm_policy_timer;
} }
return policy; return policy;
} }

View file

@ -504,12 +504,9 @@ struct xfrm_state *xfrm_state_alloc(void)
INIT_HLIST_NODE(&x->bydst); INIT_HLIST_NODE(&x->bydst);
INIT_HLIST_NODE(&x->bysrc); INIT_HLIST_NODE(&x->bysrc);
INIT_HLIST_NODE(&x->byspi); INIT_HLIST_NODE(&x->byspi);
init_timer(&x->timer); setup_timer(&x->timer, xfrm_timer_handler, (unsigned long)x);
x->timer.function = xfrm_timer_handler; setup_timer(&x->rtimer, xfrm_replay_timer_handler,
x->timer.data = (unsigned long)x; (unsigned long)x);
init_timer(&x->rtimer);
x->rtimer.function = xfrm_replay_timer_handler;
x->rtimer.data = (unsigned long)x;
x->curlft.add_time = get_seconds(); x->curlft.add_time = get_seconds();
x->lft.soft_byte_limit = XFRM_INF; x->lft.soft_byte_limit = XFRM_INF;
x->lft.soft_packet_limit = XFRM_INF; x->lft.soft_packet_limit = XFRM_INF;