Skip to content

Commit 4966bab

Browse files
keesdavem330
authored andcommitted
net/rose: Convert timers to use timer_setup()
In preparation for unconditionally passing the struct timer_list pointer to all timer callbacks, switch to using the new timer_setup() and from_timer() to pass the timer pointer explicitly. Cc: Ralf Baechle <[email protected]> Cc: "David S. Miller" <[email protected]> Cc: [email protected] Cc: [email protected] Signed-off-by: Kees Cook <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 83a37b3 commit 4966bab

File tree

5 files changed

+36
-44
lines changed

5 files changed

+36
-44
lines changed

net/rose/af_rose.c

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -318,9 +318,11 @@ void rose_destroy_socket(struct sock *);
318318
/*
319319
* Handler for deferred kills.
320320
*/
321-
static void rose_destroy_timer(unsigned long data)
321+
static void rose_destroy_timer(struct timer_list *t)
322322
{
323-
rose_destroy_socket((struct sock *)data);
323+
struct sock *sk = from_timer(sk, t, sk_timer);
324+
325+
rose_destroy_socket(sk);
324326
}
325327

326328
/*
@@ -353,8 +355,7 @@ void rose_destroy_socket(struct sock *sk)
353355

354356
if (sk_has_allocations(sk)) {
355357
/* Defer: outstanding buffers */
356-
setup_timer(&sk->sk_timer, rose_destroy_timer,
357-
(unsigned long)sk);
358+
timer_setup(&sk->sk_timer, rose_destroy_timer, 0);
358359
sk->sk_timer.expires = jiffies + 10 * HZ;
359360
add_timer(&sk->sk_timer);
360361
} else
@@ -538,8 +539,8 @@ static int rose_create(struct net *net, struct socket *sock, int protocol,
538539
sock->ops = &rose_proto_ops;
539540
sk->sk_protocol = protocol;
540541

541-
init_timer(&rose->timer);
542-
init_timer(&rose->idletimer);
542+
timer_setup(&rose->timer, NULL, 0);
543+
timer_setup(&rose->idletimer, NULL, 0);
543544

544545
rose->t1 = msecs_to_jiffies(sysctl_rose_call_request_timeout);
545546
rose->t2 = msecs_to_jiffies(sysctl_rose_reset_request_timeout);
@@ -582,8 +583,8 @@ static struct sock *rose_make_new(struct sock *osk)
582583
sk->sk_state = TCP_ESTABLISHED;
583584
sock_copy_flags(sk, osk);
584585

585-
init_timer(&rose->timer);
586-
init_timer(&rose->idletimer);
586+
timer_setup(&rose->timer, NULL, 0);
587+
timer_setup(&rose->idletimer, NULL, 0);
587588

588589
orose = rose_sk(osk);
589590
rose->t1 = orose->t1;

net/rose/rose_link.c

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
#include <linux/interrupt.h>
2828
#include <net/rose.h>
2929

30-
static void rose_ftimer_expiry(unsigned long);
31-
static void rose_t0timer_expiry(unsigned long);
30+
static void rose_ftimer_expiry(struct timer_list *);
31+
static void rose_t0timer_expiry(struct timer_list *);
3232

3333
static void rose_transmit_restart_confirmation(struct rose_neigh *neigh);
3434
static void rose_transmit_restart_request(struct rose_neigh *neigh);
@@ -37,8 +37,7 @@ void rose_start_ftimer(struct rose_neigh *neigh)
3737
{
3838
del_timer(&neigh->ftimer);
3939

40-
neigh->ftimer.data = (unsigned long)neigh;
41-
neigh->ftimer.function = &rose_ftimer_expiry;
40+
neigh->ftimer.function = (TIMER_FUNC_TYPE)rose_ftimer_expiry;
4241
neigh->ftimer.expires =
4342
jiffies + msecs_to_jiffies(sysctl_rose_link_fail_timeout);
4443

@@ -49,8 +48,7 @@ static void rose_start_t0timer(struct rose_neigh *neigh)
4948
{
5049
del_timer(&neigh->t0timer);
5150

52-
neigh->t0timer.data = (unsigned long)neigh;
53-
neigh->t0timer.function = &rose_t0timer_expiry;
51+
neigh->t0timer.function = (TIMER_FUNC_TYPE)rose_t0timer_expiry;
5452
neigh->t0timer.expires =
5553
jiffies + msecs_to_jiffies(sysctl_rose_restart_request_timeout);
5654

@@ -77,13 +75,13 @@ static int rose_t0timer_running(struct rose_neigh *neigh)
7775
return timer_pending(&neigh->t0timer);
7876
}
7977

80-
static void rose_ftimer_expiry(unsigned long param)
78+
static void rose_ftimer_expiry(struct timer_list *t)
8179
{
8280
}
8381

84-
static void rose_t0timer_expiry(unsigned long param)
82+
static void rose_t0timer_expiry(struct timer_list *t)
8583
{
86-
struct rose_neigh *neigh = (struct rose_neigh *)param;
84+
struct rose_neigh *neigh = from_timer(neigh, t, t0timer);
8785

8886
rose_transmit_restart_request(neigh);
8987

net/rose/rose_loopback.c

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,13 @@ static struct sk_buff_head loopback_queue;
1919
static struct timer_list loopback_timer;
2020

2121
static void rose_set_loopback_timer(void);
22+
static void rose_loopback_timer(struct timer_list *unused);
2223

2324
void rose_loopback_init(void)
2425
{
2526
skb_queue_head_init(&loopback_queue);
2627

27-
init_timer(&loopback_timer);
28+
timer_setup(&loopback_timer, rose_loopback_timer, 0);
2829
}
2930

3031
static int rose_loopback_running(void)
@@ -50,20 +51,16 @@ int rose_loopback_queue(struct sk_buff *skb, struct rose_neigh *neigh)
5051
return 1;
5152
}
5253

53-
static void rose_loopback_timer(unsigned long);
5454

5555
static void rose_set_loopback_timer(void)
5656
{
5757
del_timer(&loopback_timer);
5858

59-
loopback_timer.data = 0;
60-
loopback_timer.function = &rose_loopback_timer;
6159
loopback_timer.expires = jiffies + 10;
62-
6360
add_timer(&loopback_timer);
6461
}
6562

66-
static void rose_loopback_timer(unsigned long param)
63+
static void rose_loopback_timer(struct timer_list *unused)
6764
{
6865
struct sk_buff *skb;
6966
struct net_device *dev;

net/rose/rose_route.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -104,8 +104,8 @@ static int __must_check rose_add_node(struct rose_route_struct *rose_route,
104104

105105
skb_queue_head_init(&rose_neigh->queue);
106106

107-
init_timer(&rose_neigh->ftimer);
108-
init_timer(&rose_neigh->t0timer);
107+
timer_setup(&rose_neigh->ftimer, NULL, 0);
108+
timer_setup(&rose_neigh->t0timer, NULL, 0);
109109

110110
if (rose_route->ndigis != 0) {
111111
rose_neigh->digipeat =
@@ -390,8 +390,8 @@ void rose_add_loopback_neigh(void)
390390

391391
skb_queue_head_init(&sn->queue);
392392

393-
init_timer(&sn->ftimer);
394-
init_timer(&sn->t0timer);
393+
timer_setup(&sn->ftimer, NULL, 0);
394+
timer_setup(&sn->t0timer, NULL, 0);
395395

396396
spin_lock_bh(&rose_neigh_list_lock);
397397
sn->next = rose_neigh_list;

net/rose/rose_timer.c

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
#include <net/rose.h>
3030

3131
static void rose_heartbeat_expiry(unsigned long);
32-
static void rose_timer_expiry(unsigned long);
33-
static void rose_idletimer_expiry(unsigned long);
32+
static void rose_timer_expiry(struct timer_list *);
33+
static void rose_idletimer_expiry(struct timer_list *);
3434

3535
void rose_start_heartbeat(struct sock *sk)
3636
{
@@ -49,8 +49,7 @@ void rose_start_t1timer(struct sock *sk)
4949

5050
del_timer(&rose->timer);
5151

52-
rose->timer.data = (unsigned long)sk;
53-
rose->timer.function = &rose_timer_expiry;
52+
rose->timer.function = (TIMER_FUNC_TYPE)rose_timer_expiry;
5453
rose->timer.expires = jiffies + rose->t1;
5554

5655
add_timer(&rose->timer);
@@ -62,8 +61,7 @@ void rose_start_t2timer(struct sock *sk)
6261

6362
del_timer(&rose->timer);
6463

65-
rose->timer.data = (unsigned long)sk;
66-
rose->timer.function = &rose_timer_expiry;
64+
rose->timer.function = (TIMER_FUNC_TYPE)rose_timer_expiry;
6765
rose->timer.expires = jiffies + rose->t2;
6866

6967
add_timer(&rose->timer);
@@ -75,8 +73,7 @@ void rose_start_t3timer(struct sock *sk)
7573

7674
del_timer(&rose->timer);
7775

78-
rose->timer.data = (unsigned long)sk;
79-
rose->timer.function = &rose_timer_expiry;
76+
rose->timer.function = (TIMER_FUNC_TYPE)rose_timer_expiry;
8077
rose->timer.expires = jiffies + rose->t3;
8178

8279
add_timer(&rose->timer);
@@ -88,8 +85,7 @@ void rose_start_hbtimer(struct sock *sk)
8885

8986
del_timer(&rose->timer);
9087

91-
rose->timer.data = (unsigned long)sk;
92-
rose->timer.function = &rose_timer_expiry;
88+
rose->timer.function = (TIMER_FUNC_TYPE)rose_timer_expiry;
9389
rose->timer.expires = jiffies + rose->hb;
9490

9591
add_timer(&rose->timer);
@@ -102,8 +98,7 @@ void rose_start_idletimer(struct sock *sk)
10298
del_timer(&rose->idletimer);
10399

104100
if (rose->idle > 0) {
105-
rose->idletimer.data = (unsigned long)sk;
106-
rose->idletimer.function = &rose_idletimer_expiry;
101+
rose->idletimer.function = (TIMER_FUNC_TYPE)rose_idletimer_expiry;
107102
rose->idletimer.expires = jiffies + rose->idle;
108103

109104
add_timer(&rose->idletimer);
@@ -163,10 +158,10 @@ static void rose_heartbeat_expiry(unsigned long param)
163158
bh_unlock_sock(sk);
164159
}
165160

166-
static void rose_timer_expiry(unsigned long param)
161+
static void rose_timer_expiry(struct timer_list *t)
167162
{
168-
struct sock *sk = (struct sock *)param;
169-
struct rose_sock *rose = rose_sk(sk);
163+
struct rose_sock *rose = from_timer(rose, t, timer);
164+
struct sock *sk = &rose->sock;
170165

171166
bh_lock_sock(sk);
172167
switch (rose->state) {
@@ -192,9 +187,10 @@ static void rose_timer_expiry(unsigned long param)
192187
bh_unlock_sock(sk);
193188
}
194189

195-
static void rose_idletimer_expiry(unsigned long param)
190+
static void rose_idletimer_expiry(struct timer_list *t)
196191
{
197-
struct sock *sk = (struct sock *)param;
192+
struct rose_sock *rose = from_timer(rose, t, idletimer);
193+
struct sock *sk = &rose->sock;
198194

199195
bh_lock_sock(sk);
200196
rose_clear_queues(sk);

0 commit comments

Comments
 (0)