diff options
Diffstat (limited to 'vnet/vnet/devices/af_packet/af_packet.c')
-rw-r--r-- | vnet/vnet/devices/af_packet/af_packet.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/vnet/vnet/devices/af_packet/af_packet.c b/vnet/vnet/devices/af_packet/af_packet.c index 17eddd658c0..cec25fed035 100644 --- a/vnet/vnet/devices/af_packet/af_packet.c +++ b/vnet/vnet/devices/af_packet/af_packet.c @@ -308,6 +308,9 @@ af_packet_delete_if (vlib_main_t * vm, u8 * host_if_name) unix_file_del (&unix_main, unix_main.file_pool + apif->unix_file_index); apif->unix_file_index = ~0; } + else + close (apif->fd); + ring_sz = apif->rx_req->tp_block_size * apif->rx_req->tp_block_nr + apif->tx_req->tp_block_size * apif->tx_req->tp_block_nr; if (munmap (apif->rx_ring, ring_sz)) @@ -315,7 +318,6 @@ af_packet_delete_if (vlib_main_t * vm, u8 * host_if_name) host_if_name); apif->rx_ring = NULL; apif->tx_ring = NULL; - close (apif->fd); apif->fd = -1; vec_free (apif->rx_req); |