Merge tag 'modules-for-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu...
[sfrench/cifs-2.6.git] / net / netfilter / nf_conntrack_core.c
index 5e50c54e1318e554284eb09bb12269c8d5c6a5f8..85f643c1e227c5a70c3b3038baad981e88dca880 100644 (file)
@@ -1083,7 +1083,7 @@ static void gc_worker(struct work_struct *work)
        next_run = gc_work->next_gc_run;
        gc_work->last_bucket = i;
        gc_work->early_drop = false;
        next_run = gc_work->next_gc_run;
        gc_work->last_bucket = i;
        gc_work->early_drop = false;
-       queue_delayed_work(system_long_wq, &gc_work->dwork, next_run);
+       queue_delayed_work(system_power_efficient_wq, &gc_work->dwork, next_run);
 }
 
 static void conntrack_gc_work_init(struct conntrack_gc_work *gc_work)
 }
 
 static void conntrack_gc_work_init(struct conntrack_gc_work *gc_work)
@@ -1419,7 +1419,7 @@ repeat:
        /* Decide what timeout policy we want to apply to this flow. */
        timeouts = nf_ct_timeout_lookup(net, ct, l4proto);
 
        /* Decide what timeout policy we want to apply to this flow. */
        timeouts = nf_ct_timeout_lookup(net, ct, l4proto);
 
-       ret = l4proto->packet(ct, skb, dataoff, ctinfo, pf, timeouts);
+       ret = l4proto->packet(ct, skb, dataoff, ctinfo, timeouts);
        if (ret <= 0) {
                /* Invalid: inverse of the return code tells
                 * the netfilter core what to do */
        if (ret <= 0) {
                /* Invalid: inverse of the return code tells
                 * the netfilter core what to do */
@@ -1563,9 +1563,14 @@ int nf_ct_port_nlattr_to_tuple(struct nlattr *tb[],
 }
 EXPORT_SYMBOL_GPL(nf_ct_port_nlattr_to_tuple);
 
 }
 EXPORT_SYMBOL_GPL(nf_ct_port_nlattr_to_tuple);
 
-int nf_ct_port_nlattr_tuple_size(void)
+unsigned int nf_ct_port_nlattr_tuple_size(void)
 {
 {
-       return nla_policy_len(nf_ct_port_nla_policy, CTA_PROTO_MAX + 1);
+       static unsigned int size __read_mostly;
+
+       if (!size)
+               size = nla_policy_len(nf_ct_port_nla_policy, CTA_PROTO_MAX + 1);
+
+       return size;
 }
 EXPORT_SYMBOL_GPL(nf_ct_port_nlattr_tuple_size);
 #endif
 }
 EXPORT_SYMBOL_GPL(nf_ct_port_nlattr_tuple_size);
 #endif
@@ -2084,7 +2089,7 @@ int nf_conntrack_init_start(void)
                goto err_proto;
 
        conntrack_gc_work_init(&conntrack_gc_work);
                goto err_proto;
 
        conntrack_gc_work_init(&conntrack_gc_work);
-       queue_delayed_work(system_long_wq, &conntrack_gc_work.dwork, HZ);
+       queue_delayed_work(system_power_efficient_wq, &conntrack_gc_work.dwork, HZ);
 
        return 0;
 
 
        return 0;