Fix crash on deleting activated vhost-user - VPP-603 38/4738/2
authorWojciech Dec <wdec@cisco.com>
Tue, 17 Jan 2017 20:45:11 +0000 (21:45 +0100)
committerFlorin Coras <florin.coras@gmail.com>
Tue, 17 Jan 2017 22:21:04 +0000 (22:21 +0000)
Vhost-user pool getting freed prematurely

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

index ee41ee1..9a7c1dc 100644 (file)
@@ -2429,9 +2429,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))
@@ -2439,6 +2436,10 @@ 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;
 }