Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-block.git] / net / sched / act_skbedit.c
index 5f7ca7f89ca2d393de6c6e59e4d49d59057cf2c1..e857424c387ce4333757059c5913b172d23873b4 100644 (file)
@@ -206,8 +206,8 @@ static int tcf_skbedit_init(struct net *net, struct nlattr *nla,
 
        spin_lock_bh(&d->tcf_lock);
        goto_ch = tcf_action_set_ctrlact(*a, parm->action, goto_ch);
-       rcu_swap_protected(d->params, params_new,
-                          lockdep_is_held(&d->tcf_lock));
+       params_new = rcu_replace_pointer(d->params, params_new,
+                                        lockdep_is_held(&d->tcf_lock));
        spin_unlock_bh(&d->tcf_lock);
        if (params_new)
                kfree_rcu(params_new, rcu);