gso: remove the interface count
[vpp.git] / src / vnet / devices / virtio / pci.c
index 1f569ac..925c6f5 100644 (file)
@@ -1066,7 +1066,6 @@ virtio_pci_create_if (vlib_main_t * vm, virtio_pci_create_if_args_t * args)
        vlib_pci_device_open (vm, (vlib_pci_addr_t *) & vif->pci_addr,
                             virtio_pci_device_ids, &h)))
     {
-      pool_put (vim->interfaces, vif);
       args->rv = VNET_API_ERROR_INVALID_INTERFACE;
       args->error =
        clib_error_return (error, "pci-addr %U", format_vlib_pci_addr,
@@ -1074,6 +1073,7 @@ virtio_pci_create_if (vlib_main_t * vm, virtio_pci_create_if_args_t * args)
       vlib_log (VLIB_LOG_LEVEL_ERR, vim->log_default, "%U: %s",
                format_vlib_pci_addr, &vif->pci_addr,
                "error encountered on pci device open");
+      pool_put (vim->interfaces, vif);
       return;
     }
   vif->pci_dev_handle = h;
@@ -1207,7 +1207,6 @@ virtio_pci_create_if (vlib_main_t * vm, virtio_pci_create_if_args_t * args)
            {
              vif->gso_enabled = 1;
              hw->flags |= VNET_HW_INTERFACE_FLAG_SUPPORTS_GSO;
-             vnm->interface_main.gso_interface_count++;
            }
        }
       if (vif->features & VIRTIO_FEATURE (VIRTIO_NET_F_MQ))
@@ -1248,9 +1247,6 @@ virtio_pci_delete_if (vlib_main_t * vm, virtio_if_t * vif)
 
   virtio_pci_legacy_reset (vm, vif);
 
-  if (vif->gso_enabled)
-    vnm->interface_main.gso_interface_count--;
-
   if (vif->hw_if_index)
     {
       vnet_hw_interface_set_flags (vnm, vif->hw_if_index, 0);