Author: daniel
Date: 2003-10-11 22:52:59 -0500 (Sat, 11 Oct 2003)
New Revision: 657

Added:
   branches/4.3.0/sid/debian/patches/453_ia64_fix_radeon_dri_deadlock.diff
Modified:
   branches/4.3.0/sid/debian/changelog
Log:
  * debian/patches/453_ia64_fix_radeon_dri_deadlock.diff: new patch to resolve
    constant ia64 DRI deadlocks. there are some indications that this is
    Radeon-specific, and some that it's not, so I'm just going to leave it
    as Radeon as not to give people false hope 'till I can confirm it. Are
    there even any other cards DRI supports that are made for ia64 anyway?


Modified: branches/4.3.0/sid/debian/changelog
===================================================================
--- branches/4.3.0/sid/debian/changelog 2003-10-11 21:39:24 UTC (rev 656)
+++ branches/4.3.0/sid/debian/changelog 2003-10-12 03:52:59 UTC (rev 657)
@@ -11,6 +11,9 @@
   * Add missing libXv to xlibs-dbg. [ISHIKAWA Mutsumi]
     - debian/xlibs-dbg.install: add libXv.so.1.0
     - debian/xlibs-dbg.links: add libXv link
+  
+  * Fix regular DRI deadlocks on ia64.
+    - debian/patches/453_ia64_fix_radeon_dri_deadlock.diff: new
 
   * Grab latest fixes to upstream CVS xf-4_3-branch.
     - debian/patches/000_post430.diff:

Added: branches/4.3.0/sid/debian/patches/453_ia64_fix_radeon_dri_deadlock.diff
===================================================================
--- branches/4.3.0/sid/debian/patches/453_ia64_fix_radeon_dri_deadlock.diff     
2003-10-11 21:39:24 UTC (rev 656)
+++ branches/4.3.0/sid/debian/patches/453_ia64_fix_radeon_dri_deadlock.diff     
2003-10-12 03:52:59 UTC (rev 657)
@@ -0,0 +1,26 @@
+This patch fixes an incorrect locking primitive in ia64 DRI unlocking
+routines that would cause regular deadlocks; this patch is from John Dennis
+via http://bugs.xfree86.org/show_bug.cgi?id=778.
+
+--- xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h.orig   2003-10-10 
16:07:37.000000000 -0400
++++ xc/programs/Xserver/hw/xfree86/os-support/xf86drm.h        2003-10-10 
16:09:27.000000000 -0400
+@@ -285,8 +285,8 @@
+ 
+ #define __drm_dummy_lock(lock) (*(__volatile__ unsigned int *)lock)
+ 
+-#define DRM_LOCK_HELD  0x80000000 /**< Hardware lock is held */
+-#define DRM_LOCK_CONT  0x40000000 /**< Hardware lock is contended */
++#define DRM_LOCK_HELD  0x80000000U /**< Hardware lock is held */
++#define DRM_LOCK_CONT  0x40000000U /**< Hardware lock is contended */
+ 
+ #if defined(__GNUC__) && (__GNUC__ >= 2)
+ # if defined(__i386) || defined(__AMD64__)
+@@ -378,7 +378,7 @@
+                       ";;\n"                                            \
+                       "cmpxchg4.acq %0=%1,%3,ar.ccv"                    \
+                       : "=r" (__result), "=m" (__drm_dummy_lock(lock))  \
+-                      : "r" (__old), "r" (new)                          \
++                      : "r" ((unsigned long)__old), "r" (new)           \
+                       : "memory");                                      \
+               __ret = (__result) != (__old);                            \
+       } while (0)

Reply via email to