|
@@ -494,17 +494,15 @@ EXPORT_SYMBOL(inet_csk_accept);
|
|
|
* to optimize.
|
|
|
*/
|
|
|
void inet_csk_init_xmit_timers(struct sock *sk,
|
|
|
- void (*retransmit_handler)(unsigned long),
|
|
|
- void (*delack_handler)(unsigned long),
|
|
|
- void (*keepalive_handler)(unsigned long))
|
|
|
+ void (*retransmit_handler)(struct timer_list *t),
|
|
|
+ void (*delack_handler)(struct timer_list *t),
|
|
|
+ void (*keepalive_handler)(struct timer_list *t))
|
|
|
{
|
|
|
struct inet_connection_sock *icsk = inet_csk(sk);
|
|
|
|
|
|
- setup_timer(&icsk->icsk_retransmit_timer, retransmit_handler,
|
|
|
- (unsigned long)sk);
|
|
|
- setup_timer(&icsk->icsk_delack_timer, delack_handler,
|
|
|
- (unsigned long)sk);
|
|
|
- setup_timer(&sk->sk_timer, keepalive_handler, (unsigned long)sk);
|
|
|
+ timer_setup(&icsk->icsk_retransmit_timer, retransmit_handler, 0);
|
|
|
+ timer_setup(&icsk->icsk_delack_timer, delack_handler, 0);
|
|
|
+ timer_setup(&sk->sk_timer, keepalive_handler, 0);
|
|
|
icsk->icsk_pending = icsk->icsk_ack.pending = 0;
|
|
|
}
|
|
|
EXPORT_SYMBOL(inet_csk_init_xmit_timers);
|
|
@@ -676,9 +674,9 @@ void inet_csk_reqsk_queue_drop_and_put(struct sock *sk, struct request_sock *req
|
|
|
}
|
|
|
EXPORT_SYMBOL(inet_csk_reqsk_queue_drop_and_put);
|
|
|
|
|
|
-static void reqsk_timer_handler(unsigned long data)
|
|
|
+static void reqsk_timer_handler(struct timer_list *t)
|
|
|
{
|
|
|
- struct request_sock *req = (struct request_sock *)data;
|
|
|
+ struct request_sock *req = from_timer(req, t, rsk_timer);
|
|
|
struct sock *sk_listener = req->rsk_listener;
|
|
|
struct net *net = sock_net(sk_listener);
|
|
|
struct inet_connection_sock *icsk = inet_csk(sk_listener);
|
|
@@ -749,8 +747,7 @@ static void reqsk_queue_hash_req(struct request_sock *req,
|
|
|
req->num_timeout = 0;
|
|
|
req->sk = NULL;
|
|
|
|
|
|
- setup_pinned_timer(&req->rsk_timer, reqsk_timer_handler,
|
|
|
- (unsigned long)req);
|
|
|
+ timer_setup(&req->rsk_timer, reqsk_timer_handler, TIMER_PINNED);
|
|
|
mod_timer(&req->rsk_timer, jiffies + timeout);
|
|
|
|
|
|
inet_ehash_insert(req_to_sk(req), NULL);
|