diff --git a/src/source-netmap.c b/src/source-netmap.c index 2409e3847..35533263b 100644 --- a/src/source-netmap.c +++ b/src/source-netmap.c @@ -692,6 +692,9 @@ static TmEcode NetmapWritePacket(NetmapThreadVars *ntv, Packet *p) #else if (nm_inject(ntv->ifdst->nmd, GET_PKT_DATA(p), GET_PKT_LEN(p)) == 0) { #endif + /* writing the packet failed, but still need kernel to sync TX rings */ + ioctl(ntv->ifdst->nmd->fd, NIOCTXSYNC, 0); + if (ntv->flags & NETMAP_FLAG_EXCL_RING_ACCESS) { SCMutexUnlock(&ntv->ifdst->netmap_dev_lock); }