aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/drm
diff options
context:
space:
mode:
authorDavid E. O'Brien <obrien@FreeBSD.org>2004-12-02 09:38:34 +0000
committerDavid E. O'Brien <obrien@FreeBSD.org>2004-12-02 09:38:34 +0000
commitf0b078381d07dbb4c95b93d0be1110854f9bad38 (patch)
tree24a62d96e4d68c1f7608bccfb12783b02164a9cc /sys/dev/drm
parent10ce62b975a243fd00baa7797c36a83f40a7c4ec (diff)
Notes
Diffstat (limited to 'sys/dev/drm')
-rw-r--r--sys/dev/drm/drm_os_freebsd.h13
1 files changed, 6 insertions, 7 deletions
diff --git a/sys/dev/drm/drm_os_freebsd.h b/sys/dev/drm/drm_os_freebsd.h
index 750e6ec3f93c..a9a7308ccd3d 100644
--- a/sys/dev/drm/drm_os_freebsd.h
+++ b/sys/dev/drm/drm_os_freebsd.h
@@ -275,9 +275,9 @@ for ( ret = 0 ; !ret && !(condition) ; ) { \
#define DRM_COPY_TO_USER_UNCHECKED(arg1, arg2, arg3) \
copyout(arg2, arg1, arg3)
#define DRM_GET_USER_UNCHECKED(val, uaddr) \
- ((val) = fuword(uaddr), 0)
+ ((val) = fuword32(uaddr), 0)
#define DRM_PUT_USER_UNCHECKED(uaddr, val) \
- suword(uaddr, val)
+ suword32(uaddr, val)
/* DRM_READMEMORYBARRIER() prevents reordering of reads.
* DRM_WRITEMEMORYBARRIER() prevents reordering of writes.
@@ -294,11 +294,10 @@ for ( ret = 0 ; !ret && !(condition) ; ) { \
#define DRM_WRITEMEMORYBARRIER() alpha_wmb();
#define DRM_MEMORYBARRIER() alpha_mb();
#elif defined(__amd64__)
-#define DRM_READMEMORYBARRIER() __asm __volatile( \
- "lock; addl $0,0(%%rsp)" : : : "memory");
-#define DRM_WRITEMEMORYBARRIER() __asm __volatile("" : : : "memory");
-#define DRM_MEMORYBARRIER() __asm __volatile( \
- "lock; addl $0,0(%%rsp)" : : : "memory");
+//#warning FIX-ME!!!
+#define DRM_READMEMORYBARRIER() __asm __volatile("lfence" ::: "memory");
+#define DRM_WRITEMEMORYBARRIER() __asm __volatile("sfence" ::: "memory");
+#define DRM_MEMORYBARRIER() __asm __volatile("mfence" ::: "memory");
#endif
#define PAGE_ALIGN(addr) round_page(addr)