diff options
Diffstat (limited to 'ring_tx.c')
-rw-r--r-- | ring_tx.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -31,9 +31,14 @@ void set_packet_loss_discard(int sock) void destroy_tx_ring(int sock, struct ring *ring) { + int ret; + fmemset(&ring->layout, 0, sizeof(ring->layout)); - setsockopt(sock, SOL_PACKET, PACKET_TX_RING, &ring->layout, - sizeof(ring->layout)); + + ret = setsockopt(sock, SOL_PACKET, PACKET_TX_RING, &ring->layout, + sizeof(ring->layout)); + if (unlikely(ret)) + panic("Cannot destroy the TX_RING!\n"); munmap(ring->mm_space, ring->mm_len); ring->mm_len = 0; |