Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-block.git] / net / sched / act_ct.c
index 68d6af56b243f3475d1f1fc2c10afd74fe62ed4b..ae0de372b1c8f003caafdf354e68a87676bd7ab7 100644 (file)
@@ -474,7 +474,6 @@ drop:
 }
 
 static const struct nla_policy ct_policy[TCA_CT_MAX + 1] = {
-       [TCA_CT_UNSPEC] = { .strict_start_type = TCA_CT_UNSPEC + 1 },
        [TCA_CT_ACTION] = { .type = NLA_U16 },
        [TCA_CT_PARMS] = { .type = NLA_EXACT_LEN, .len = sizeof(struct tc_ct) },
        [TCA_CT_ZONE] = { .type = NLA_U16 },
@@ -722,7 +721,8 @@ static int tcf_ct_init(struct net *net, struct nlattr *nla,
 
        spin_lock_bh(&c->tcf_lock);
        goto_ch = tcf_action_set_ctrlact(*a, parm->action, goto_ch);
-       rcu_swap_protected(c->params, params, lockdep_is_held(&c->tcf_lock));
+       params = rcu_replace_pointer(c->params, params,
+                                    lockdep_is_held(&c->tcf_lock));
        spin_unlock_bh(&c->tcf_lock);
 
        if (goto_ch)