From 367efea8c9ba557a81158a69ecee267706a520eb Mon Sep 17 00:00:00 2001 From: Daniel Borkmann Date: Thu, 28 Mar 2013 18:48:25 +0100 Subject: ring: purge timer before we unmap tx ring buffers If we unmap TX ring buffers and still have timer shots that trigger the kernel to traverse the TX_RING, it can send out random crap in some situations. Prevent this by destroying the timer and flush the TX_RING first in wait mode. Signed-off-by: Daniel Borkmann --- ring_tx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ring_tx.c') diff --git a/ring_tx.c b/ring_tx.c index 6804c43..2ad1de9 100644 --- a/ring_tx.c +++ b/ring_tx.c @@ -40,7 +40,7 @@ void destroy_tx_ring(int sock, struct ring *ring) ret = setsockopt(sock, SOL_PACKET, PACKET_TX_RING, &ring->layout, sizeof(ring->layout)); if (unlikely(ret)) - panic("Cannot destroy the TX_RING!\n"); + panic("Cannot destroy the TX_RING: %s!\n", strerror(errno)); xfree(ring->frames); } -- cgit v1.2.3-54-g00ecf