aboutsummaryrefslogtreecommitdiffstats
path: root/net/ax25/ax25_timer.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-15 10:33:07 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-15 10:33:07 -0500
commitf6866fecd6fd8e44a6715da09844a4fd1b8484da (patch)
treea166c399ddb37a48035589ffda29ef05d236c4b4 /net/ax25/ax25_timer.c
parent4ee29f6a52158cea526b16a44ae38643946103ec (diff)
parent997b37da1515c1620692521786a74af271664eb7 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (82 commits) [NET]: Make sure sockets implement splice_read netconsole: avoid null pointer dereference at show_local_mac() [IPV6]: Fix reversed local_df test in ip6_fragment [XFRM]: Avoid bogus BUG() when throwing new policy away. [AF_KEY]: Fix bug in spdadd [NETFILTER] nf_conntrack_proto_tcp.c: Mistyped state corrected. net: xfrm statistics depend on INET [NETFILTER]: make secmark_tg_destroy() static [INET]: Unexport inet_listen_wlock [INET]: Unexport __inet_hash_connect [NET]: Improve cache line coherency of ingress qdisc [NET]: Fix race in dev_close(). (Bug 9750) [IPSEC]: Fix bogus usage of u64 on input sequence number [RTNETLINK]: Send a single notification on device state changes. [NETLABLE]: Hide netlbl_unlabel_audit_addr6 under ifdef CONFIG_IPV6. [NETLABEL]: Don't produce unused variables when IPv6 is off. [NETLABEL]: Compilation for CONFIG_AUDIT=n case. [GENETLINK]: Relax dances with genl_lock. [NETLABEL]: Fix lookup logic of netlbl_domhsh_search_def. [IPV6]: remove unused method declaration (net/ndisc.h). ...
Diffstat (limited to 'net/ax25/ax25_timer.c')
-rw-r--r--net/ax25/ax25_timer.c60
1 files changed, 21 insertions, 39 deletions
diff --git a/net/ax25/ax25_timer.c b/net/ax25/ax25_timer.c
index 72594867fab6..db29ea71e80a 100644
--- a/net/ax25/ax25_timer.c
+++ b/net/ax25/ax25_timer.c
@@ -40,63 +40,45 @@ static void ax25_t2timer_expiry(unsigned long);
40static void ax25_t3timer_expiry(unsigned long); 40static void ax25_t3timer_expiry(unsigned long);
41static void ax25_idletimer_expiry(unsigned long); 41static void ax25_idletimer_expiry(unsigned long);
42 42
43void ax25_start_heartbeat(ax25_cb *ax25) 43void ax25_setup_timers(ax25_cb *ax25)
44{ 44{
45 del_timer(&ax25->timer); 45 setup_timer(&ax25->timer, ax25_heartbeat_expiry, (unsigned long)ax25);
46 46 setup_timer(&ax25->t1timer, ax25_t1timer_expiry, (unsigned long)ax25);
47 ax25->timer.data = (unsigned long)ax25; 47 setup_timer(&ax25->t2timer, ax25_t2timer_expiry, (unsigned long)ax25);
48 ax25->timer.function = &ax25_heartbeat_expiry; 48 setup_timer(&ax25->t3timer, ax25_t3timer_expiry, (unsigned long)ax25);
49 ax25->timer.expires = jiffies + 5 * HZ; 49 setup_timer(&ax25->idletimer, ax25_idletimer_expiry,
50 (unsigned long)ax25);
51}
50 52
51 add_timer(&ax25->timer); 53void ax25_start_heartbeat(ax25_cb *ax25)
54{
55 mod_timer(&ax25->timer, jiffies + 5 * HZ);
52} 56}
53 57
54void ax25_start_t1timer(ax25_cb *ax25) 58void ax25_start_t1timer(ax25_cb *ax25)
55{ 59{
56 del_timer(&ax25->t1timer); 60 mod_timer(&ax25->t1timer, jiffies + ax25->t1);
57
58 ax25->t1timer.data = (unsigned long)ax25;
59 ax25->t1timer.function = &ax25_t1timer_expiry;
60 ax25->t1timer.expires = jiffies + ax25->t1;
61
62 add_timer(&ax25->t1timer);
63} 61}
64 62
65void ax25_start_t2timer(ax25_cb *ax25) 63void ax25_start_t2timer(ax25_cb *ax25)
66{ 64{
67 del_timer(&ax25->t2timer); 65 mod_timer(&ax25->t2timer, jiffies + ax25->t2);
68
69 ax25->t2timer.data = (unsigned long)ax25;
70 ax25->t2timer.function = &ax25_t2timer_expiry;
71 ax25->t2timer.expires = jiffies + ax25->t2;
72
73 add_timer(&ax25->t2timer);
74} 66}
75 67
76void ax25_start_t3timer(ax25_cb *ax25) 68void ax25_start_t3timer(ax25_cb *ax25)
77{ 69{
78 del_timer(&ax25->t3timer); 70 if (ax25->t3 > 0)
79 71 mod_timer(&ax25->t3timer, jiffies + ax25->t3);
80 if (ax25->t3 > 0) { 72 else
81 ax25->t3timer.data = (unsigned long)ax25; 73 del_timer(&ax25->t3timer);
82 ax25->t3timer.function = &ax25_t3timer_expiry;
83 ax25->t3timer.expires = jiffies + ax25->t3;
84
85 add_timer(&ax25->t3timer);
86 }
87} 74}
88 75
89void ax25_start_idletimer(ax25_cb *ax25) 76void ax25_start_idletimer(ax25_cb *ax25)
90{ 77{
91 del_timer(&ax25->idletimer); 78 if (ax25->idle > 0)
92 79 mod_timer(&ax25->idletimer, jiffies + ax25->idle);
93 if (ax25->idle > 0) { 80 else
94 ax25->idletimer.data = (unsigned long)ax25; 81 del_timer(&ax25->idletimer);
95 ax25->idletimer.function = &ax25_idletimer_expiry;
96 ax25->idletimer.expires = jiffies + ax25->idle;
97
98 add_timer(&ax25->idletimer);
99 }
100} 82}
101 83
102void ax25_stop_heartbeat(ax25_cb *ax25) 84void ax25_stop_heartbeat(ax25_cb *ax25)