X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Ftunnel.c;h=1ef81ab7893f08172d16df71861ad7bda1a7cb1f;hb=073e2a6f2383cf7c17f78b8fa29e6e5293f60ba0;hp=c2439f0e17c37e24806d9d8ae69b866cff7d8962;hpb=5b95ab0edf18e44d6624c8aa98b658df2fbb48f2;p=sliver-openvswitch.git diff --git a/datapath/tunnel.c b/datapath/tunnel.c index c2439f0e1..1ef81ab78 100644 --- a/datapath/tunnel.c +++ b/datapath/tunnel.c @@ -249,11 +249,13 @@ static int add_port(struct vport *vport) struct tbl *new_table; new_table = tbl_expand(cur_table); - if (IS_ERR(new_table)) - return PTR_ERR(new_table); - - rcu_assign_pointer(port_table, new_table); - tbl_deferred_destroy(cur_table, NULL); + if (IS_ERR(new_table)) { + if (PTR_ERR(new_table) != -ENOSPC) + return PTR_ERR(new_table); + } else { + rcu_assign_pointer(port_table, new_table); + tbl_deferred_destroy(cur_table, NULL); + } } err = tbl_insert(rtnl_dereference(port_table), &tnl_vport->tbl_node,