vhost: memory leak upon deleting vhost-user interface 00/36100/2
authorSteven Luong <sluong@cisco.com>
Fri, 6 May 2022 20:34:10 +0000 (13:34 -0700)
committerNeale Ranns <neale@graphiant.com>
Mon, 9 May 2022 00:35:48 +0000 (00:35 +0000)
We allocate vring_spinlock for all vrings in the vui, not just the ones
being used. So when we free the vui, we have to free vring_spinlock for
all vrings, not just the one being used.

Type: fix

Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I3951fda71ce6e11474b04302116ea9e08b404758

src/vnet/devices/virtio/vhost_user.c

index 9c58572..b6e0806 100644 (file)
@@ -1414,10 +1414,8 @@ vhost_user_term_if (vhost_user_intf_t * vui)
   vhost_user_update_gso_interface_count (vui, 0 /* delete */ );
   vhost_user_update_iface_state (vui);
 
-  FOR_ALL_VHOST_RX_TXQ (q, vui)
-  {
+  for (q = 0; q < vec_len (vui->vrings); q++)
     clib_spinlock_free (&vui->vrings[q].vring_lock);
-  }
 
   if (vui->unix_server_index != ~0)
     {