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?