Merge branch 'akpm' (patches from Andrew)
[sfrench/cifs-2.6.git] / net / ipv4 / inet_timewait_sock.c
index 5b039159e67a60c13bc2399ae140c90d31ae3dc5..c690cd0d9b3f0af53c23b9a1ecc87be4098ae059 100644 (file)
@@ -9,7 +9,6 @@
  */
 
 #include <linux/kernel.h>
-#include <linux/kmemcheck.h>
 #include <linux/slab.h>
 #include <linux/module.h>
 #include <net/inet_hashtables.h>
@@ -142,9 +141,9 @@ void __inet_twsk_hashdance(struct inet_timewait_sock *tw, struct sock *sk,
 }
 EXPORT_SYMBOL_GPL(__inet_twsk_hashdance);
 
-static void tw_timer_handler(unsigned long data)
+static void tw_timer_handler(struct timer_list *t)
 {
-       struct inet_timewait_sock *tw = (struct inet_timewait_sock *)data;
+       struct inet_timewait_sock *tw = from_timer(tw, t, tw_timer);
 
        if (tw->tw_kill)
                __NET_INC_STATS(twsk_net(tw), LINUX_MIB_TIMEWAITKILLED);
@@ -167,8 +166,6 @@ struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk,
        if (tw) {
                const struct inet_sock *inet = inet_sk(sk);
 
-               kmemcheck_annotate_bitfield(tw, flags);
-
                tw->tw_dr           = dr;
                /* Give us an identity. */
                tw->tw_daddr        = inet->inet_daddr;
@@ -188,8 +185,7 @@ struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk,
                tw->tw_prot         = sk->sk_prot_creator;
                atomic64_set(&tw->tw_cookie, atomic64_read(&sk->sk_cookie));
                twsk_net_set(tw, sock_net(sk));
-               setup_pinned_timer(&tw->tw_timer, tw_timer_handler,
-                                  (unsigned long)tw);
+               timer_setup(&tw->tw_timer, tw_timer_handler, TIMER_PINNED);
                /*
                 * Because we use RCU lookups, we should not set tw_refcnt
                 * to a non null value before everything is setup for this