When deleting an avf interface which is not the very first interface
that was created (dev_instance == 0), VPP crashes.
The reason is every avf interface delete always removes the very first
device instance due to ad->dev_instance was wiped out prior to the
statement pool_put_index (am->devices, ad->dev_instance)
Type: fix
Signed-off-by: Steven Luong <sluong@cisco.com>
Change-Id: I69bd1588aab9a176f8eef46be7aa5063f5d29482
vnet_main_t *vnm = vnet_get_main ();
avf_main_t *am = &avf_main;
int i;
+ u32 dev_instance;
ad->flags &= ~AVF_DEVICE_F_ADMIN_UP;
vec_free (ad->name);
clib_error_free (ad->error);
+ dev_instance = ad->dev_instance;
clib_memset (ad, 0, sizeof (*ad));
- pool_put_index (am->devices, ad->dev_instance);
+ pool_put_index (am->devices, dev_instance);
clib_mem_free (ad);
}