···1818 u16 ctmask; /* bitmask of ct events to be delivered */1919 u16 expmask; /* bitmask of expect events to be delivered */2020 u32 pid; /* netlink pid of destroyer */2121+ struct timer_list timeout;2122};22232324static inline struct nf_conntrack_ecache *
+4-1
net/ipv4/netfilter/nf_nat_sip.c
···502502 ret = nf_ct_expect_related(rtcp_exp);503503 if (ret == 0)504504 break;505505- else if (ret != -EBUSY) {505505+ else if (ret == -EBUSY) {506506+ nf_ct_unexpect_related(rtp_exp);507507+ continue;508508+ } else if (ret < 0) {506509 nf_ct_unexpect_related(rtp_exp);507510 port = 0;508511 break;
+3-1
net/netfilter/ipvs/ip_vs_ctl.c
···11711171 goto out_err;11721172 }11731173 svc->stats.cpustats = alloc_percpu(struct ip_vs_cpu_stats);11741174- if (!svc->stats.cpustats)11741174+ if (!svc->stats.cpustats) {11751175+ ret = -ENOMEM;11751176 goto out_err;11771177+ }1176117811771179 /* I'm the first user of the service */11781180 atomic_set(&svc->usecnt, 0);
+11-5
net/netfilter/nf_conntrack_core.c
···249249{250250 struct nf_conn *ct = (void *)ul_conntrack;251251 struct net *net = nf_ct_net(ct);252252+ struct nf_conntrack_ecache *ecache = nf_ct_ecache_find(ct);253253+254254+ BUG_ON(ecache == NULL);252255253256 if (nf_conntrack_event(IPCT_DESTROY, ct) < 0) {254257 /* bad luck, let's retry again */255255- ct->timeout.expires = jiffies +258258+ ecache->timeout.expires = jiffies +256259 (random32() % net->ct.sysctl_events_retry_timeout);257257- add_timer(&ct->timeout);260260+ add_timer(&ecache->timeout);258261 return;259262 }260263 /* we've got the event delivered, now it's dying */···271268void nf_ct_insert_dying_list(struct nf_conn *ct)272269{273270 struct net *net = nf_ct_net(ct);271271+ struct nf_conntrack_ecache *ecache = nf_ct_ecache_find(ct);272272+273273+ BUG_ON(ecache == NULL);274274275275 /* add this conntrack to the dying list */276276 spin_lock_bh(&nf_conntrack_lock);···281275 &net->ct.dying);282276 spin_unlock_bh(&nf_conntrack_lock);283277 /* set a new timer to retry event delivery */284284- setup_timer(&ct->timeout, death_by_event, (unsigned long)ct);285285- ct->timeout.expires = jiffies +278278+ setup_timer(&ecache->timeout, death_by_event, (unsigned long)ct);279279+ ecache->timeout.expires = jiffies +286280 (random32() % net->ct.sysctl_events_retry_timeout);287287- add_timer(&ct->timeout);281281+ add_timer(&ecache->timeout);288282}289283EXPORT_SYMBOL_GPL(nf_ct_insert_dying_list);290284
+2-1
net/netfilter/nf_conntrack_netlink.c
···27902790 goto err_unreg_subsys;27912791 }2792279227932793- if (register_pernet_subsys(&ctnetlink_net_ops)) {27932793+ ret = register_pernet_subsys(&ctnetlink_net_ops);27942794+ if (ret < 0) {27942795 pr_err("ctnetlink_init: cannot register pernet operations\n");27952796 goto err_unreg_exp_subsys;27962797 }
+4-2
net/netfilter/nfnetlink_log.c
···480480 }481481482482 if (indev && skb_mac_header_was_set(skb)) {483483- if (nla_put_be32(inst->skb, NFULA_HWTYPE, htons(skb->dev->type)) ||483483+ if (nla_put_be16(inst->skb, NFULA_HWTYPE, htons(skb->dev->type)) ||484484 nla_put_be16(inst->skb, NFULA_HWLEN,485485 htons(skb->dev->hard_header_len)) ||486486 nla_put(inst->skb, NFULA_HWHEADER, skb->dev->hard_header_len,···996996997997#ifdef CONFIG_PROC_FS998998 if (!proc_create("nfnetlink_log", 0440,999999- proc_net_netfilter, &nful_file_ops))999999+ proc_net_netfilter, &nful_file_ops)) {10001000+ status = -ENOMEM;10001001 goto cleanup_logger;10021002+ }10011003#endif10021004 return status;10031005