Fix crash on deleting activated vhost-user - VPP-603 62/4762/2
authorWojciech Dec <wdec@cisco.com>
Wed, 18 Jan 2017 16:37:15 +0000 (17:37 +0100)
committerJohn Lo <loj@cisco.com>
Wed, 18 Jan 2017 17:40:55 +0000 (17:40 +0000)
Vhost-user pool getting freed prematurely

Change-Id: I90b70889d2e5a01203dc7679583b7c9eff65a374
Signed-off-by: Wojciech Dec <wdec@cisco.com>
vnet/vnet/devices/virtio/vhost-user.c

index fa64f10..88f9dde 100644 (file)
@@ -2422,9 +2422,6 @@ vhost_user_delete_if (vnet_main_t * vnm, vlib_main_t * vm, u32 sw_if_index)
   // Disable and reset interface
   vhost_user_term_if (vui);
 
-  // Back to pool
-  pool_put (vum->vhost_user_interfaces, vui);
-
   // Reset renumbered iface
   if (hwif->dev_instance <
       vec_len (vum->show_dev_instance_by_real_dev_instance))
@@ -2432,6 +2429,9 @@ vhost_user_delete_if (vnet_main_t * vnm, vlib_main_t * vm, u32 sw_if_index)
 
   // Delete ethernet interface
   ethernet_delete_interface (vnm, vui->hw_if_index);
+
+  // Back to pool
+  pool_put (vum->vhost_user_interfaces, vui);
   return rv;
 }