Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 99767f27 authored by Kees Cook's avatar Kees Cook Committed by David S. Miller
Browse files

net/core: Convert sk_timer users 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 for all users of sk_timer.

Cc: "David S. Miller" <davem@davemloft.net>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Andrew Hendry <andrew.hendry@gmail.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Paolo Abeni <pabeni@redhat.com>
Cc: David Howells <dhowells@redhat.com>
Cc: Julia Lawall <julia.lawall@lip6.fr>
Cc: linzhang <xiaolou4617@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: netdev@vger.kernel.org
Cc: linux-hams@vger.kernel.org
Cc: linux-x25@vger.kernel.org
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 26566eae
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -2683,7 +2683,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
	sk_init_common(sk);
	sk->sk_send_head	=	NULL;

	setup_timer(&sk->sk_timer, NULL, (unsigned long)sk);
	timer_setup(&sk->sk_timer, NULL, 0);

	sk->sk_allocation	=	GFP_KERNEL;
	sk->sk_rcvbuf		=	sysctl_rmem_default;
+3 −3
Original line number Diff line number Diff line
@@ -241,9 +241,9 @@ void nr_destroy_socket(struct sock *);
/*
 *	Handler for deferred kills.
 */
static void nr_destroy_timer(unsigned long data)
static void nr_destroy_timer(struct timer_list *t)
{
	struct sock *sk=(struct sock *)data;
	struct sock *sk = from_timer(sk, t, sk_timer);
	bh_lock_sock(sk);
	sock_hold(sk);
	nr_destroy_socket(sk);
@@ -284,7 +284,7 @@ void nr_destroy_socket(struct sock *sk)

	if (sk_has_allocations(sk)) {
		/* Defer: outstanding buffers */
		sk->sk_timer.function = nr_destroy_timer;
		sk->sk_timer.function = (TIMER_FUNC_TYPE)nr_destroy_timer;
		sk->sk_timer.expires  = jiffies + 2 * HZ;
		add_timer(&sk->sk_timer);
	} else
+24 −23
Original line number Diff line number Diff line
@@ -29,23 +29,23 @@
#include <linux/interrupt.h>
#include <net/netrom.h>

static void nr_heartbeat_expiry(unsigned long);
static void nr_t1timer_expiry(unsigned long);
static void nr_t2timer_expiry(unsigned long);
static void nr_t4timer_expiry(unsigned long);
static void nr_idletimer_expiry(unsigned long);
static void nr_heartbeat_expiry(struct timer_list *);
static void nr_t1timer_expiry(struct timer_list *);
static void nr_t2timer_expiry(struct timer_list *);
static void nr_t4timer_expiry(struct timer_list *);
static void nr_idletimer_expiry(struct timer_list *);

void nr_init_timers(struct sock *sk)
{
	struct nr_sock *nr = nr_sk(sk);

	setup_timer(&nr->t1timer, nr_t1timer_expiry, (unsigned long)sk);
	setup_timer(&nr->t2timer, nr_t2timer_expiry, (unsigned long)sk);
	setup_timer(&nr->t4timer, nr_t4timer_expiry, (unsigned long)sk);
	setup_timer(&nr->idletimer, nr_idletimer_expiry, (unsigned long)sk);
	timer_setup(&nr->t1timer, nr_t1timer_expiry, 0);
	timer_setup(&nr->t2timer, nr_t2timer_expiry, 0);
	timer_setup(&nr->t4timer, nr_t4timer_expiry, 0);
	timer_setup(&nr->idletimer, nr_idletimer_expiry, 0);

	/* initialized by sock_init_data */
	sk->sk_timer.function = &nr_heartbeat_expiry;
	sk->sk_timer.function = (TIMER_FUNC_TYPE)nr_heartbeat_expiry;
}

void nr_start_t1timer(struct sock *sk)
@@ -112,9 +112,9 @@ int nr_t1timer_running(struct sock *sk)
	return timer_pending(&nr_sk(sk)->t1timer);
}

static void nr_heartbeat_expiry(unsigned long param)
static void nr_heartbeat_expiry(struct timer_list *t)
{
	struct sock *sk = (struct sock *)param;
	struct sock *sk = from_timer(sk, t, sk_timer);
	struct nr_sock *nr = nr_sk(sk);

	bh_lock_sock(sk);
@@ -151,10 +151,10 @@ static void nr_heartbeat_expiry(unsigned long param)
	bh_unlock_sock(sk);
}

static void nr_t2timer_expiry(unsigned long param)
static void nr_t2timer_expiry(struct timer_list *t)
{
	struct sock *sk = (struct sock *)param;
	struct nr_sock *nr = nr_sk(sk);
	struct nr_sock *nr = from_timer(nr, t, t2timer);
	struct sock *sk = &nr->sock;

	bh_lock_sock(sk);
	if (nr->condition & NR_COND_ACK_PENDING) {
@@ -164,19 +164,20 @@ static void nr_t2timer_expiry(unsigned long param)
	bh_unlock_sock(sk);
}

static void nr_t4timer_expiry(unsigned long param)
static void nr_t4timer_expiry(struct timer_list *t)
{
	struct sock *sk = (struct sock *)param;
	struct nr_sock *nr = from_timer(nr, t, t4timer);
	struct sock *sk = &nr->sock;

	bh_lock_sock(sk);
	nr_sk(sk)->condition &= ~NR_COND_PEER_RX_BUSY;
	bh_unlock_sock(sk);
}

static void nr_idletimer_expiry(unsigned long param)
static void nr_idletimer_expiry(struct timer_list *t)
{
	struct sock *sk = (struct sock *)param;
	struct nr_sock *nr = nr_sk(sk);
	struct nr_sock *nr = from_timer(nr, t, idletimer);
	struct sock *sk = &nr->sock;

	bh_lock_sock(sk);

@@ -201,10 +202,10 @@ static void nr_idletimer_expiry(unsigned long param)
	bh_unlock_sock(sk);
}

static void nr_t1timer_expiry(unsigned long param)
static void nr_t1timer_expiry(struct timer_list *t)
{
	struct sock *sk = (struct sock *)param;
	struct nr_sock *nr = nr_sk(sk);
	struct nr_sock *nr = from_timer(nr, t, t1timer);
	struct sock *sk = &nr->sock;

	bh_lock_sock(sk);
	switch (nr->state) {
+4 −4
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@
#include <linux/interrupt.h>
#include <net/rose.h>

static void rose_heartbeat_expiry(unsigned long);
static void rose_heartbeat_expiry(struct timer_list *t);
static void rose_timer_expiry(struct timer_list *);
static void rose_idletimer_expiry(struct timer_list *);

@@ -36,7 +36,7 @@ void rose_start_heartbeat(struct sock *sk)
{
	del_timer(&sk->sk_timer);

	sk->sk_timer.function = &rose_heartbeat_expiry;
	sk->sk_timer.function = (TIMER_FUNC_TYPE)rose_heartbeat_expiry;
	sk->sk_timer.expires  = jiffies + 5 * HZ;

	add_timer(&sk->sk_timer);
@@ -119,9 +119,9 @@ void rose_stop_idletimer(struct sock *sk)
	del_timer(&rose_sk(sk)->idletimer);
}

static void rose_heartbeat_expiry(unsigned long param)
static void rose_heartbeat_expiry(struct timer_list *t)
{
	struct sock *sk = (struct sock *)param;
	struct sock *sk = from_timer(sk, t, sk_timer);
	struct rose_sock *rose = rose_sk(sk);

	bh_lock_sock(sk);
+5 −3
Original line number Diff line number Diff line
@@ -374,9 +374,11 @@ static void __x25_destroy_socket(struct sock *);
/*
 *	handler for deferred kills.
 */
static void x25_destroy_timer(unsigned long data)
static void x25_destroy_timer(struct timer_list *t)
{
	x25_destroy_socket_from_timer((struct sock *)data);
	struct sock *sk = from_timer(sk, t, sk_timer);

	x25_destroy_socket_from_timer(sk);
}

/*
@@ -413,7 +415,7 @@ static void __x25_destroy_socket(struct sock *sk)
	if (sk_has_allocations(sk)) {
		/* Defer: outstanding buffers */
		sk->sk_timer.expires  = jiffies + 10 * HZ;
		sk->sk_timer.function = x25_destroy_timer;
		sk->sk_timer.function = (TIMER_FUNC_TYPE)x25_destroy_timer;
		add_timer(&sk->sk_timer);
	} else {
		/* drop last reference so sock_put will free */
Loading