On Tue, Apr 30, 2013 at 4:21 PM, Pravin B Shelar <pshe...@nicira.com> wrote: > diff --git a/datapath/vport-gre.c b/datapath/vport-gre.c > index 2db4934..59e22be 100644 > --- a/datapath/vport-gre.c > +++ b/datapath/vport-gre.c > @@ -327,10 +325,17 @@ static struct vport *gre_create(const struct > vport_parms *parms) > struct net *net = ovs_dp_get_net(parms->dp); > struct ovs_net *ovs_net; > struct vport *vport; > + int err; > + > + err = gre_init(); > + if (err) > + return ERR_PTR(err); > > ovs_net = net_generic(net, ovs_net_id); > - if (ovsl_dereference(ovs_net->vport_net.gre_vport)) > - return ERR_PTR(-EEXIST); > + if (ovsl_dereference(ovs_net->vport_net.gre_vport)) { > + vport = ERR_PTR(-EEXIST); > + goto error; > + }
I think that we need to jump to error in the case that ovs_vport_alloc() fails as well. > diff --git a/datapath/vport.h b/datapath/vport.h > index cba578c..56065a7 100644 > --- a/datapath/vport.h > +++ b/datapath/vport.h > @@ -94,8 +94,7 @@ struct vport { > struct ovs_vport_stats offset_stats; > }; > > -#define VPORT_F_REQUIRED (1 << 0) /* If init fails, module loading > fails. */ > -#define VPORT_F_TUN_ID (1 << 1) /* Sets OVS_CB(skb)->tun_id. */ > +#define VPORT_F_TUN_ID (1 << 0) /* Sets OVS_CB(skb)->tun_id. */ This is separate but we should probably rename TUN_ID now that it's more than just the ID. Maybe we can even just remove it (for example, force people to initialize it) now that it's the only remaining flag. _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev