Author: branden
Date: 2005-05-06 01:40:38 -0500 (Fri, 06 May 2005)
New Revision: 2244

Modified:
   trunk/debian/CHANGESETS
   trunk/debian/TODO
   trunk/debian/changelog
   trunk/debian/patches/000_stolen_from_xorg.diff
   trunk/debian/patches/071_nonexecutable_malloced_mem.diff
Log:
Apply patches from Alex Williamson (also in freedesktop.org xorg CVS) to
make the XFree86's X servers ELF object loader ensure cache coherency on
IA64.  Resync patch #071.  (Closes: #303461)


Modified: trunk/debian/CHANGESETS
===================================================================
--- trunk/debian/CHANGESETS     2005-05-06 03:12:21 UTC (rev 2243)
+++ trunk/debian/CHANGESETS     2005-05-06 06:40:38 UTC (rev 2244)
@@ -108,4 +108,9 @@
 #099v.  (Closes: #284448)
     2243
 
+Apply patches from Alex Williamson (also in freedesktop.org xorg CVS) to
+make the XFree86's X servers ELF object loader ensure cache coherency on
+IA64.  Resync patch #071.  (Closes: #303461)
+    2244
+
 vim:set ai et sts=4 sw=4 tw=80:

Modified: trunk/debian/TODO
===================================================================
--- trunk/debian/TODO   2005-05-06 03:12:21 UTC (rev 2243)
+++ trunk/debian/TODO   2005-05-06 06:40:38 UTC (rev 2244)
@@ -22,7 +22,6 @@
     #284561: awareness of /dev/input/mouse handling of PS/2 mice in Linux 2.6
   + Use /proc/hardware on m68k architecture to set a reasonable default mouse
     port.  See <URL: http://lists.debian.org/debian-68k/2004/08/msg00392.html>.
-* #303461: ensure cache coherency when using elfloader on IA64
 
 Post 4.3.0-1
 ------------

Modified: trunk/debian/changelog
===================================================================
--- trunk/debian/changelog      2005-05-06 03:12:21 UTC (rev 2243)
+++ trunk/debian/changelog      2005-05-06 06:40:38 UTC (rev 2244)
@@ -88,8 +88,12 @@
     on font metrics and avoid SEGVs in xfs and the X server.  Resync patch
     #099v.  (Closes: #284448)
 
- -- Branden Robinson <[EMAIL PROTECTED]>  Thu,  5 May 2005 21:28:32 -0500
+  * Apply patches from Alex Williamson (also in freedesktop.org xorg CVS) to
+    make the XFree86's X servers ELF object loader ensure cache coherency on
+    IA64.  Resync patch #071.  (Closes: #303461)
 
+ -- Branden Robinson <[EMAIL PROTECTED]>  Fri,  6 May 2005 00:53:51 -0500
+
 xfree86 (4.3.0.dfsg.1-12) unstable; urgency=medium
 
   * Urgency set to medium due to fix for release-critical bug #295175

Modified: trunk/debian/patches/000_stolen_from_xorg.diff
===================================================================
--- trunk/debian/patches/000_stolen_from_xorg.diff      2005-05-06 03:12:21 UTC 
(rev 2243)
+++ trunk/debian/patches/000_stolen_from_xorg.diff      2005-05-06 06:40:38 UTC 
(rev 2244)
@@ -31,6 +31,12 @@
        * Another fix for MiscPassMessage(): Initialize returned "status".
          [Thomas Winischhofer]
 
+xc/programs/Xserver/hw/xfree86/common/compiler.h @ 1.5
+xc/programs/Xserver/hw/xfree86/loader/elfloader.c @ 1.5
+       When not using dlopen ia64 needs an extra cache
+       flush to ensure the icache is coherent when modules
+       are loaded (Alex Williamson). [Egbert Eich]
+
 diff -Naurd xc.orig/programs/Xserver/hw/xfree86/common/xf86str.h 
xc/programs/Xserver/hw/xfree86/common/xf86str.h
 --- xc.orig/programs/Xserver/hw/xfree86/common/xf86str.h       2004-09-15 
10:05:46.000000000 +0000
 +++ xc/programs/Xserver/hw/xfree86/common/xf86str.h    2004-09-15 
10:14:05.000000000 +0000
@@ -448,3 +454,33 @@
      return (client->noClientException);
  }
  
+Index: xc/programs/Xserver/hw/xfree86/common/compiler.h
+--- xc/programs/Xserver/hw/xfree86~/common/compiler.h  2003-01-29 
10:23:20.000000000 -0500
++++ xc/programs/Xserver/hw/xfree86/common/compiler.h   2005-05-05 
22:37:43.127205367 -0500
+@@ -434,7 +434,7 @@
+  */
+ #    define ia64_flush_cache(Addr) \
+       __asm__ __volatile__ ( \
+-              "fc %0;;;" \
++              "fc.i %0;;;" \
+               "sync.i;;;" \
+               "mf;;;" \
+               "srlz.i;;;" \
+Index: xc/programs/Xserver/hw/xfree86/loader/elfloader.c
+--- xc/programs/Xserver/hw/xfree86~/loader/elfloader.c 2005-05-05 
22:37:11.934228000 -0500
++++ xc/programs/Xserver/hw/xfree86/loader/elfloader.c  2005-05-05 
22:39:02.164145742 -0500
+@@ -2732,6 +2732,14 @@
+       case SHT_PROGBITS:
+           mprotect(elffile->lsection[j].saddr, SecSize(i), 
+                    PROT_READ|PROT_WRITE|PROT_EXEC);
++#ifdef __ia64__
++         {
++              int k;
++              for (k = 0; k < SecSize(i); k += 32)
++                  ia64_flush_cache(elffile->lsection[j].saddr+k);
++              ia64_flush_cache(elffile->lsection[j].saddr+SecSize(i)-1);
++         }
++#endif
+           break;
+ #endif
+       case SHT_SYMTAB:

Modified: trunk/debian/patches/071_nonexecutable_malloced_mem.diff
===================================================================
--- trunk/debian/patches/071_nonexecutable_malloced_mem.diff    2005-05-06 
03:12:21 UTC (rev 2243)
+++ trunk/debian/patches/071_nonexecutable_malloced_mem.diff    2005-05-06 
06:40:38 UTC (rev 2244)
@@ -18,8 +18,12 @@
 
 Not submitted to XFree86 or X.Org yet.
 
---- xc/programs/Xserver/hw/xfree86/loader/elfloader.c~ 2005-02-09 
02:24:53.000000000 -0500
-+++ xc/programs/Xserver/hw/xfree86/loader/elfloader.c  2005-02-09 
02:30:43.000000000 -0500
+These changes are already present in freedesktop.org xorg CVS revision
+1.2.4.1 (tag XORG-6_8_2).
+
+Index: xc/programs/Xserver/hw/xfree86/loader/elfloader.c
+--- xc/programs/Xserver/hw/xfree86/loader/elfloader.c~ 2005-05-05 
22:49:22.881677475 -0500
++++ xc/programs/Xserver/hw/xfree86/loader/elfloader.c  2005-05-05 
22:50:45.667615022 -0500
 @@ -957,7 +957,7 @@
            ErrorF( "ELFCreateGOT() Unable to reallocate memory!!!!\n" );
            return FALSE;
@@ -29,7 +33,7 @@
        {
            unsigned long page_size = getpagesize();
            unsigned long round;
-@@ -2728,10 +2728,16 @@
+@@ -2728,10 +2728,15 @@
        elffile->lsection[j].size=SecSize(i);
        elffile->lsection[j].flags=flags;
        switch (SecType(i)) {
@@ -41,15 +45,14 @@
 +          {
 +              unsigned long page_size = getpagesize();
 +              unsigned long round;
-+
 +              round = (unsigned long)elffile->lsection[j].saddr & (page_size 
- 1);
 +              mprotect( (char *)elffile->lsection[j].saddr - round,
 +                       SecSize(i) + round, PROT_READ|PROT_WRITE|PROT_EXEC);
 +          }
-           break;
- #endif
-       case SHT_SYMTAB:
-@@ -2925,7 +2931,7 @@
+ #ifdef __ia64__
+          {
+               int k;
+@@ -2933,7 +2937,7 @@
        ErrorF( "Unable to allocate ELF sections\n" );
        return NULL;
      }


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to