vxlan: fix interface naming

Previous commit broke naming of vxlan interfaces.

Type:fix
Fixes:a4b0541f6

Signed-off-by: Ray Kinsella <mdr@ashroe.eu>
Change-Id: I5e304821be73547b4e47c35ad9632283f153830f
diff --git a/src/vnet/vxlan/vxlan.c b/src/vnet/vxlan/vxlan.c
index 300aae4..b2329d8 100644
--- a/src/vnet/vxlan/vxlan.c
+++ b/src/vnet/vxlan/vxlan.c
@@ -440,20 +440,22 @@
       hw_addr[0] = 2;
       hw_addr[1] = 0xfe;
 
+      hash_set (vxm->instance_used, user_instance, 1);
+
+      t->dev_instance = dev_instance;	/* actual */
+      t->user_instance = user_instance; /* name */
+      t->flow_index = ~0;
+
       if (ethernet_register_interface (vnm, vxlan_device_class.index,
 				       dev_instance, hw_addr, &t->hw_if_index,
 				       vxlan_eth_flag_change))
 	{
+	  hash_unset (vxm->instance_used, t->user_instance);
+
 	  pool_put (vxm->tunnels, t);
 	  return VNET_API_ERROR_SYSCALL_ERROR_2;
 	}
 
-      hash_set (vxm->instance_used, user_instance, 1);
-
-      t->dev_instance = dev_instance;	/* actual */
-      t->user_instance = user_instance;	/* name */
-      t->flow_index = ~0;
-
       vnet_hw_interface_t *hi = vnet_get_hw_interface (vnm, t->hw_if_index);
 
       /* Set vxlan tunnel output node */