#define atomic_dec_return(v) (atomic_sub_return(1,v))
/* Atomic operations are already serializing on x86 */
-#define smp_mb__before_atomic_dec() barrier()
-#define smp_mb__after_atomic_dec() barrier()
-#define smp_mb__before_atomic_inc() barrier()
-#define smp_mb__after_atomic_inc() barrier()
+#define smp_mb__before_atomic_dec() cmm_barrier()
+#define smp_mb__after_atomic_dec() cmm_barrier()
+#define smp_mb__before_atomic_inc() cmm_barrier()
+#define smp_mb__after_atomic_inc() cmm_barrier()
#endif //0 /* duplicate with arch_atomic.h */
#include <sys/param.h>
/* #include "atomic.h" */
-/*
- * Compiler magic.
- */
-#define container_of(ptr, type, member) ({ \
- const typeof( ((type *)0)->member ) *__mptr = (ptr); \
- (type *)( (char *)__mptr - offsetof(type,member) );})
-
/*
* Default machine parameters.
*/
#define LIST_POISON1 ((void *) 0x00100100)
#define LIST_POISON2 ((void *) 0x00200200)
-#define container_of(ptr, type, member) ({ \
- const typeof( ((type *)0)->member ) *__mptr = (ptr); \
- (type *)( (char *)__mptr - offsetof(type,member) );})
-
#if 0
/*
* Simple doubly linked list implementation.