[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

X Strike Force XFree86 SVN commit: r2244 - in trunk/debian: . patches



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 <branden@debian.org>  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 <branden@debian.org>  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;
      }



Reply to: