vhost_user: Fix setting MTU using uninitialized variable
[vpp.git] / src / vnet / devices / virtio / vhost_user.c
index a8a7ae8..863cebe 100644 (file)
@@ -73,7 +73,9 @@ get_huge_page_size (int fd)
 static void
 unmap_all_mem_regions (vhost_user_intf_t * vui)
 {
-  int i, r;
+  int i, r, q;
+  vhost_user_vring_t *vq;
+
   for (i = 0; i < vui->nregions; i++)
     {
       if (vui->region_mmap_addr[i] != MAP_FAILED)
@@ -104,6 +106,14 @@ unmap_all_mem_regions (vhost_user_intf_t * vui)
        }
     }
   vui->nregions = 0;
+
+  for (q = 0; q < VHOST_VRING_MAX_N; q++)
+    {
+      vq = &vui->vrings[q];
+      vq->avail = 0;
+      vq->used = 0;
+      vq->desc = 0;
+    }
 }
 
 static void
@@ -1349,8 +1359,6 @@ vhost_user_create_ethernet (vnet_main_t * vnm, vlib_main_t * vm,
 
   if (error)
     clib_error_report (error);
-
-  vnet_sw_interface_set_mtu (vnm, vui->sw_if_index, 9000);
 }
 
 /*
@@ -1461,6 +1469,7 @@ vhost_user_create_if (vnet_main_t * vnm, vlib_main_t * vm,
   vhost_user_create_ethernet (vnm, vm, vui, hwaddr);
   vhost_user_vui_init (vnm, vui, server_sock_fd, sock_filename,
                       feature_mask, &sw_if_idx);
+  vnet_sw_interface_set_mtu (vnm, vui->sw_if_index, 9000);
 
   if (renumber)
     vnet_interface_name_renumber (sw_if_idx, custom_dev_instance);
@@ -1767,8 +1776,9 @@ show_vhost_user_command_fn (vlib_main_t * vm,
     {
       hi = vnet_get_hw_interface (vnm, hw_if_indices[i]);
       vui = pool_elt_at_index (vum->vhost_user_interfaces, hi->dev_instance);
-      vlib_cli_output (vm, "Interface: %s (ifindex %d)",
-                      hi->name, hw_if_indices[i]);
+      vlib_cli_output (vm, "Interface: %U (ifindex %d)",
+                      format_vnet_hw_if_index_name, vnm, hw_if_indices[i],
+                      hw_if_indices[i]);
 
       vlib_cli_output (vm, "virtio_net_hdr_sz %d\n"
                       " features mask (0x%llx): \n"