diff -ur src.old/sys/amd64/include/atomic.h src/sys/amd64/include/atomic.h --- src.old/sys/amd64/include/atomic.h Sat Apr 29 18:55:51 2006 +++ src/sys/amd64/include/atomic.h Sat Apr 29 19:57:47 2006 @@ -203,15 +203,8 @@ static __inline u_##TYPE \ atomic_load_acq_##TYPE(volatile u_##TYPE *p) \ { \ - u_##TYPE res; \ - \ - __asm __volatile(__XSTRING(MPLOCKED) LOP \ - : "=a" (res), /* 0 (result) */\ - "=m" (*p) /* 1 */ \ - : "m" (*p) /* 2 */ \ - : "memory"); \ - \ - return (res); \ + __asm__ __volatile("lfence"); \ + return (*p); \ } \ \ /* \ @@ -220,10 +213,8 @@ static __inline void \ atomic_store_rel_##TYPE(volatile u_##TYPE *p, u_##TYPE v)\ { \ - __asm __volatile(SOP \ - : "=m" (*p), /* 0 */ \ - "+r" (v) /* 1 */ \ - : "m" (*p)); /* 2 */ \ + *p = v; \ + __asm__ __volatile("lfence"); \ } \ struct __hack