From: Manish Kurup <kurup.man...@gmail.com>
Date: Wed,  1 Nov 2017 17:46:21 -0400

> -     v->tcfv_push_proto = push_proto;
> +     ASSERT_RTNL();
> +     p = kzalloc(sizeof(*p), GFP_KERNEL);
> +     if (!p) {
> +             if (ovr)
> +                     tcf_idr_release(*a, bind);
> +             return -ENOMEM;
> +     }
>  
>       v->tcf_action = parm->action;
>  
> -     spin_unlock_bh(&v->tcf_lock);
> +     p_old = rtnl_dereference(v->vlan_p);
> +
> +     p->tcfv_action = action;
> +     p->tcfv_push_vid = push_vid;
> +     p->tcfv_push_prio = push_prio;
> +     p->tcfv_push_proto = push_proto;
> +
> +     rcu_assign_pointer(v->vlan_p, p);
> +
> +     if (p_old)
> +             kfree_rcu(p_old, rcu);

What frees this RCU memory when the VLAN action is destroyed?

Reply via email to