aboutsummaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMatt Macy <mmacy@FreeBSD.org>2018-05-19 16:44:12 +0000
committerMatt Macy <mmacy@FreeBSD.org>2018-05-19 16:44:12 +0000
commite335651e1e5722a5ba8e10467ae3e63d41ae0cf3 (patch)
treef1536404eb2c6e0b1da8c9072c46d5ee36998d1f /sys
parent86c61317fd6d35c9e1ad23a52157a3fb5861eef1 (diff)
Notes
Diffstat (limited to 'sys')
-rw-r--r--sys/net/mp_ring.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/net/mp_ring.c b/sys/net/mp_ring.c
index d7878f6d480b..d181517a6f25 100644
--- a/sys/net/mp_ring.c
+++ b/sys/net/mp_ring.c
@@ -37,7 +37,7 @@ __FBSDID("$FreeBSD$");
#include <sys/malloc.h>
#include <machine/cpu.h>
-#if defined(__powerpc__) || defined(__mips__)
+#if defined(__powerpc__) || defined(__mips__) || defined(__i386__)
#define NO_64BIT_ATOMICS
#endif
@@ -345,6 +345,7 @@ ifmp_ring_enqueue(struct ifmp_ring *r, void **items, int n, int budget)
if (n >= space_available(r, os)) {
counter_u64_add(r->drops, n);
MPASS(os.flags != IDLE);
+ mtx_unlock(&r->lock);
if (os.flags == STALLED)
ifmp_ring_check_drainage(r, 0);
return (ENOBUFS);