- p = kzalloc(sizeof(*p), GFP_KERNEL);
- if (!p)
- return -ENOMEM;
-
- p->port_no = port_no;
- p->dp = dp;
- p->vport = vport;
- atomic_set(&p->sflow_pool, 0);
-
- err = vport_attach(vport, p);
- if (err) {
- kfree(p);
- return err;
- }
-
- rcu_assign_pointer(dp->ports[port_no], p);
- list_add_rcu(&p->node, &dp->port_list);
+ rcu_assign_pointer(dp->ports[port_no], vport);
+ list_add_rcu(&vport->node, &dp->port_list);