hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
kernel/net/rose/rose_timer.c
....@@ -1,8 +1,5 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
2
- * This program is free software; you can redistribute it and/or modify
3
- * it under the terms of the GNU General Public License as published by
4
- * the Free Software Foundation; either version 2 of the License, or
5
- * (at your option) any later version.
63 *
74 * Copyright (C) Jonathan Naylor G4KLX (g4klx@g4klx.demon.co.uk)
85 * Copyright (C) 2002 Ralf Baechle DO1GRB (ralf@gnu.org)
....@@ -34,89 +31,89 @@
3431
3532 void rose_start_heartbeat(struct sock *sk)
3633 {
37
- del_timer(&sk->sk_timer);
34
+ sk_stop_timer(sk, &sk->sk_timer);
3835
3936 sk->sk_timer.function = rose_heartbeat_expiry;
4037 sk->sk_timer.expires = jiffies + 5 * HZ;
4138
42
- add_timer(&sk->sk_timer);
39
+ sk_reset_timer(sk, &sk->sk_timer, sk->sk_timer.expires);
4340 }
4441
4542 void rose_start_t1timer(struct sock *sk)
4643 {
4744 struct rose_sock *rose = rose_sk(sk);
4845
49
- del_timer(&rose->timer);
46
+ sk_stop_timer(sk, &rose->timer);
5047
5148 rose->timer.function = rose_timer_expiry;
5249 rose->timer.expires = jiffies + rose->t1;
5350
54
- add_timer(&rose->timer);
51
+ sk_reset_timer(sk, &rose->timer, rose->timer.expires);
5552 }
5653
5754 void rose_start_t2timer(struct sock *sk)
5855 {
5956 struct rose_sock *rose = rose_sk(sk);
6057
61
- del_timer(&rose->timer);
58
+ sk_stop_timer(sk, &rose->timer);
6259
6360 rose->timer.function = rose_timer_expiry;
6461 rose->timer.expires = jiffies + rose->t2;
6562
66
- add_timer(&rose->timer);
63
+ sk_reset_timer(sk, &rose->timer, rose->timer.expires);
6764 }
6865
6966 void rose_start_t3timer(struct sock *sk)
7067 {
7168 struct rose_sock *rose = rose_sk(sk);
7269
73
- del_timer(&rose->timer);
70
+ sk_stop_timer(sk, &rose->timer);
7471
7572 rose->timer.function = rose_timer_expiry;
7673 rose->timer.expires = jiffies + rose->t3;
7774
78
- add_timer(&rose->timer);
75
+ sk_reset_timer(sk, &rose->timer, rose->timer.expires);
7976 }
8077
8178 void rose_start_hbtimer(struct sock *sk)
8279 {
8380 struct rose_sock *rose = rose_sk(sk);
8481
85
- del_timer(&rose->timer);
82
+ sk_stop_timer(sk, &rose->timer);
8683
8784 rose->timer.function = rose_timer_expiry;
8885 rose->timer.expires = jiffies + rose->hb;
8986
90
- add_timer(&rose->timer);
87
+ sk_reset_timer(sk, &rose->timer, rose->timer.expires);
9188 }
9289
9390 void rose_start_idletimer(struct sock *sk)
9491 {
9592 struct rose_sock *rose = rose_sk(sk);
9693
97
- del_timer(&rose->idletimer);
94
+ sk_stop_timer(sk, &rose->idletimer);
9895
9996 if (rose->idle > 0) {
10097 rose->idletimer.function = rose_idletimer_expiry;
10198 rose->idletimer.expires = jiffies + rose->idle;
10299
103
- add_timer(&rose->idletimer);
100
+ sk_reset_timer(sk, &rose->idletimer, rose->idletimer.expires);
104101 }
105102 }
106103
107104 void rose_stop_heartbeat(struct sock *sk)
108105 {
109
- del_timer(&sk->sk_timer);
106
+ sk_stop_timer(sk, &sk->sk_timer);
110107 }
111108
112109 void rose_stop_timer(struct sock *sk)
113110 {
114
- del_timer(&rose_sk(sk)->timer);
111
+ sk_stop_timer(sk, &rose_sk(sk)->timer);
115112 }
116113
117114 void rose_stop_idletimer(struct sock *sk)
118115 {
119
- del_timer(&rose_sk(sk)->idletimer);
116
+ sk_stop_timer(sk, &rose_sk(sk)->idletimer);
120117 }
121118
122119 static void rose_heartbeat_expiry(struct timer_list *t)
....@@ -133,6 +130,7 @@
133130 (sk->sk_state == TCP_LISTEN && sock_flag(sk, SOCK_DEAD))) {
134131 bh_unlock_sock(sk);
135132 rose_destroy_socket(sk);
133
+ sock_put(sk);
136134 return;
137135 }
138136 break;
....@@ -155,6 +153,7 @@
155153
156154 rose_start_heartbeat(sk);
157155 bh_unlock_sock(sk);
156
+ sock_put(sk);
158157 }
159158
160159 static void rose_timer_expiry(struct timer_list *t)
....@@ -184,6 +183,7 @@
184183 break;
185184 }
186185 bh_unlock_sock(sk);
186
+ sock_put(sk);
187187 }
188188
189189 static void rose_idletimer_expiry(struct timer_list *t)
....@@ -208,4 +208,5 @@
208208 sock_set_flag(sk, SOCK_DEAD);
209209 }
210210 bh_unlock_sock(sk);
211
+ sock_put(sk);
211212 }