[rtems-libbsd commit] Fix atomic ops in <sys/buf_ring.h>
Sebastian Huber
sebh at rtems.org
Tue Jan 10 10:06:12 UTC 2017
Module: rtems-libbsd
Branch: master
Commit: 2956924a340f59ebe2c103be3975fb0f302dd6be
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=2956924a340f59ebe2c103be3975fb0f302dd6be
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Mon Oct 24 12:00:55 2016 +0200
Fix atomic ops in <sys/buf_ring.h>
---
freebsd/sys/sys/buf_ring.h | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/freebsd/sys/sys/buf_ring.h b/freebsd/sys/sys/buf_ring.h
index 4fa7282..88c2815 100644
--- a/freebsd/sys/sys/buf_ring.h
+++ b/freebsd/sys/sys/buf_ring.h
@@ -89,7 +89,7 @@ buf_ring_enqueue(struct buf_ring *br, void *buf)
}
continue;
}
- } while (!atomic_cmpset_acq_int(&br->br_prod_head, prod_head, prod_next));
+ } while (!atomic_cmpset_acq_32(&br->br_prod_head, prod_head, prod_next));
#ifdef DEBUG_BUFRING
if (br->br_ring[prod_head] != NULL)
panic("dangling value in enqueue");
@@ -103,7 +103,7 @@ buf_ring_enqueue(struct buf_ring *br, void *buf)
*/
while (br->br_prod_tail != prod_head)
cpu_spinwait();
- atomic_store_rel_int(&br->br_prod_tail, prod_next);
+ atomic_store_rel_32(&br->br_prod_tail, prod_next);
critical_exit();
return (0);
}
@@ -127,7 +127,7 @@ buf_ring_dequeue_mc(struct buf_ring *br)
critical_exit();
return (NULL);
}
- } while (!atomic_cmpset_acq_int(&br->br_cons_head, cons_head, cons_next));
+ } while (!atomic_cmpset_acq_32(&br->br_cons_head, cons_head, cons_next));
buf = br->br_ring[cons_head];
#ifdef DEBUG_BUFRING
@@ -141,7 +141,7 @@ buf_ring_dequeue_mc(struct buf_ring *br)
while (br->br_cons_tail != cons_head)
cpu_spinwait();
- atomic_store_rel_int(&br->br_cons_tail, cons_next);
+ atomic_store_rel_32(&br->br_cons_tail, cons_next);
critical_exit();
return (buf);
More information about the vc
mailing list