Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
[platform/adaptation/renesas_rcar/renesas_kernel.git] / net / ipv4 / ipmr.c
index eddfd12..7a7ee1c 100644 (file)
@@ -998,7 +998,8 @@ ipmr_cache_unresolved(struct mr_table *mrt, vifi_t vifi, struct sk_buff *skb)
                atomic_inc(&mrt->cache_resolve_queue_len);
                list_add(&c->list, &mrt->mfc_unres_queue);
 
-               mod_timer(&mrt->ipmr_expire_timer, c->mfc_un.unres.expires);
+               if (atomic_read(&mrt->cache_resolve_queue_len) == 1)
+                       mod_timer(&mrt->ipmr_expire_timer, c->mfc_un.unres.expires);
        }
 
        /*
@@ -1599,7 +1600,7 @@ static void ipmr_queue_xmit(struct net *net, struct mr_table *mrt,
         * not mrouter) cannot join to more than one interface - it will
         * result in receiving multiple packets.
         */
-       NF_HOOK(PF_INET, NF_INET_FORWARD, skb, skb->dev, dev,
+       NF_HOOK(NFPROTO_IPV4, NF_INET_FORWARD, skb, skb->dev, dev,
                ipmr_forward_finish);
        return;