]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - net/ipv6/netfilter/nf_conntrack_reasm.c
[NETFILTER]: Use setup_timer
[mv-sheeva.git] / net / ipv6 / netfilter / nf_conntrack_reasm.c
index b7889ceef5560a245c51fb707b1d2e7f7af1f8a2..347ab7608231911981855d389279837e15eb88c9 100644 (file)
@@ -353,9 +353,7 @@ nf_ct_frag6_create(unsigned int hash, __be32 id, struct in6_addr *src,                                 str
        ipv6_addr_copy(&fq->saddr, src);
        ipv6_addr_copy(&fq->daddr, dst);
 
-       init_timer(&fq->timer);
-       fq->timer.function = nf_ct_frag6_expire;
-       fq->timer.data = (long) fq;
+       setup_timer(&fq->timer, nf_ct_frag6_expire, (unsigned long)fq);
        spin_lock_init(&fq->lock);
        atomic_set(&fq->refcnt, 1);
 
@@ -707,8 +705,9 @@ static int
 find_prev_fhdr(struct sk_buff *skb, u8 *prevhdrp, int *prevhoff, int *fhoff)
 {
        u8 nexthdr = ipv6_hdr(skb)->nexthdr;
-       u8 prev_nhoff = (u8 *)&ipv6_hdr(skb)->nexthdr - skb->data;
-       int start = (u8 *)(ipv6_hdr(skb) + 1) - skb->data;
+       const int netoff = skb_network_offset(skb);
+       u8 prev_nhoff = netoff + offsetof(struct ipv6hdr, nexthdr);
+       int start = netoff + sizeof(struct ipv6hdr);
        int len = skb->len - start;
        u8 prevhdr = NEXTHDR_IPV6;
 
@@ -869,8 +868,7 @@ int nf_ct_frag6_init(void)
        nf_ct_frag6_hash_rnd = (u32) ((num_physpages ^ (num_physpages>>7)) ^
                                   (jiffies ^ (jiffies >> 6)));
 
-       init_timer(&nf_ct_frag6_secret_timer);
-       nf_ct_frag6_secret_timer.function = nf_ct_frag6_secret_rebuild;
+       setup_timer(&nf_ct_frag6_secret_timer, nf_ct_frag6_secret_rebuild, 0);
        nf_ct_frag6_secret_timer.expires = jiffies
                                           + nf_ct_frag6_secret_interval;
        add_timer(&nf_ct_frag6_secret_timer);