diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-15 10:33:07 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-15 10:33:07 -0500 |
commit | f6866fecd6fd8e44a6715da09844a4fd1b8484da (patch) | |
tree | a166c399ddb37a48035589ffda29ef05d236c4b4 /net/ax25/ax25_timer.c | |
parent | 4ee29f6a52158cea526b16a44ae38643946103ec (diff) | |
parent | 997b37da1515c1620692521786a74af271664eb7 (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.c | 60 |
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); | |||
40 | static void ax25_t3timer_expiry(unsigned long); | 40 | static void ax25_t3timer_expiry(unsigned long); |
41 | static void ax25_idletimer_expiry(unsigned long); | 41 | static void ax25_idletimer_expiry(unsigned long); |
42 | 42 | ||
43 | void ax25_start_heartbeat(ax25_cb *ax25) | 43 | void 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); | 53 | void ax25_start_heartbeat(ax25_cb *ax25) |
54 | { | ||
55 | mod_timer(&ax25->timer, jiffies + 5 * HZ); | ||
52 | } | 56 | } |
53 | 57 | ||
54 | void ax25_start_t1timer(ax25_cb *ax25) | 58 | void 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 | ||
65 | void ax25_start_t2timer(ax25_cb *ax25) | 63 | void 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 | ||
76 | void ax25_start_t3timer(ax25_cb *ax25) | 68 | void 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 | ||
89 | void ax25_start_idletimer(ax25_cb *ax25) | 76 | void 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 | ||
102 | void ax25_stop_heartbeat(ax25_cb *ax25) | 84 | void ax25_stop_heartbeat(ax25_cb *ax25) |