Index: sys/sys/buf_ring.h =================================================================== --- sys/sys/buf_ring.h +++ sys/sys/buf_ring.h @@ -95,6 +95,7 @@ panic("dangling value in enqueue"); #endif br->br_ring[prod_head] = buf; + wmb(); /* * If there are other enqueues in progress @@ -173,6 +174,7 @@ if (cons_head == prod_tail) return (NULL); + rmb(); #ifdef PREFETCH_DEFINED if (cons_next != prod_tail) { prefetch(br->br_ring[cons_next]);