Index: sys/net/mp_ring.c =================================================================== --- sys/net/mp_ring.c +++ sys/net/mp_ring.c @@ -435,8 +435,10 @@ * pidx_tail reaches the beginning of our reservation (pidx_start). */ while (ns.pidx_tail != pidx_start) { + critical_exit(); cpu_spinwait(); ns.state = r->state; + critical_enter(); } /* Now it is our turn to fill up the area we reserved earlier. */