rpms/kernel/devel linux-2.6-xen-vsyscall_base.patch, NONE, 1.1.2.1 kernel-2.6.spec, 1.1971.2.15, 1.1971.2.16 linux-2.6-xen-move-vdso-fixmap.patch, 1.1.2.1, 1.1.2.2

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Thu Mar 2 18:06:52 UTC 2006


Author: sct

Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv3942

Modified Files:
      Tag: private-xen-rebased-1971-branch
	kernel-2.6.spec linux-2.6-xen-move-vdso-fixmap.patch 
Added Files:
      Tag: private-xen-rebased-1971-branch
	linux-2.6-xen-vsyscall_base.patch 
Log Message:
More fixes for VSYSCALL conflicts:

Add a second xen-unstable changeset (8982) to the vdso-move patch that we
revert.

Delete the FIX_VSYSCALL define from arch/i386/kernel/asm-offsets.c:
it ends up in a nasty conflict between Xen and execshield, but with the
vsyscall area being moved into a per-thread vdso anyway, we don't need
to export the constant address to assembly any more.



linux-2.6-xen-vsyscall_base.patch:
 asm-offsets.c |    1 -
 1 files changed, 1 deletion(-)

--- NEW FILE linux-2.6-xen-vsyscall_base.patch ---
Xen's patches to make the fixmap area movable cause conflicts with non-xen
builds, as the FIX_VSYSCALL define is no longer constant so cannot
sensibly be handled by asm-offsets.c.

But with execshield/vdso, we've got per-process maps to get to this memory,
so we don't actually need the fixmap area's base address from assembly any
more.  Nuke it.

--sct

--- linux-2.6.15.i586/arch/i386/kernel/asm-offsets.c.vsys	2006-03-02 12:13:23.000000000 -0500
+++ linux-2.6.15.i586/arch/i386/kernel/asm-offsets.c	2006-03-02 12:13:33.000000000 -0500
@@ -71,5 +71,4 @@
 #endif
 
 	DEFINE(PAGE_SIZE_asm, PAGE_SIZE);
-	DEFINE(VSYSCALL_BASE, __fix_to_virt(FIX_VSYSCALL));
 }


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.1971.2.15
retrieving revision 1.1971.2.16
diff -u -r1.1971.2.15 -r1.1971.2.16
--- kernel-2.6.spec	1 Mar 2006 22:31:52 -0000	1.1971.2.15
+++ kernel-2.6.spec	2 Mar 2006 18:06:39 -0000	1.1971.2.16
@@ -261,6 +261,7 @@
 Patch701: linux-2.6-xen-compile-fixes.patch
 Patch702: linux-2.6-xen-no-tls-warn.patch
 Patch703: linux-2.6-xen-move-vdso-fixmap.patch
+Patch704: linux-2.6-xen-vsyscall_base.patch
 Patch706: linux-2.6-xen_remap_vma_flags.patch
 Patch709: linux-2.6-percpu-NR_CPUS-hotplug-fix.patch
 Patch710: linux-2.6-xen-module-fault.patch
@@ -774,11 +775,6 @@
 %patch692 -p1
 %patch693 -p1
 %patch700 -p1
-%patch701 -p1
-%patch702 -p1
-%patch706 -p1
-%patch709 -p1
-#%patch710 -p1
 
 #
 # Xen includes a patch which moves the vsyscall fixmap into a user-space VA,
@@ -791,6 +787,13 @@
 #
 %patch703 -p2 -R
 
+%patch701 -p1
+%patch702 -p1
+%patch704 -p1
+%patch706 -p1
+%patch709 -p1
+#%patch710 -p1
+
 %endif
 
 #
@@ -1602,6 +1605,9 @@
 %endif
 
 %changelog
+* Thu Mar  2 2006 Stephen Tweedie <sct at redhat.com>
+- Fix xen/execshield VSYSCALL_BASE conflict
+
 * Wed Mar  1 2006 Juan Quintela <quintela at redhat.com>
 - disable ia64 build again.
 

linux-2.6-xen-move-vdso-fixmap.patch:
 arch/i386/kernel/asm-offsets.c         |    3 -
 arch/i386/kernel/sysenter.c            |   76 ++++++++++++++++++++++++++++++---
 arch/i386/mm/pgtable-xen.c             |    1 
 include/asm-i386/a.out.h               |    2 
 include/asm-i386/elf.h                 |    7 ++-
 include/asm-i386/fixmap.h              |    9 ---
 include/asm-i386/mach-xen/asm/fixmap.h |    9 ---
 include/asm-i386/mach-xen/asm/page.h   |    2 
 include/asm-i386/page.h                |    2 
 9 files changed, 84 insertions(+), 27 deletions(-)

Index: linux-2.6-xen-move-vdso-fixmap.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/Attic/linux-2.6-xen-move-vdso-fixmap.patch,v
retrieving revision 1.1.2.1
retrieving revision 1.1.2.2
diff -u -r1.1.2.1 -r1.1.2.2
--- linux-2.6-xen-move-vdso-fixmap.patch	1 Mar 2006 22:12:41 -0000	1.1.2.1
+++ linux-2.6-xen-move-vdso-fixmap.patch	2 Mar 2006 18:06:40 -0000	1.1.2.2
@@ -214,3 +214,51 @@
  #endif /* __KERNEL__ */
  
  #include <asm-generic/page.h>
+# HG changeset patch
+# User cl349 at firebug.cl.cam.ac.uk
+# Node ID 55f597e929f341eade781048db9da77a0352820d
+# Parent  dbec76a720f8d79aa9dfcdb9e91684b7426a23f9
+Fix non-xen build for: Move the gate page (vsyscall) out of the fixmap area
+into user address space, just below PAGE_OFFSET.
+
+From: Gerd Hoffmann <kraxel at suse.de>
+Signed-off-by: Christian Limpach <Christian.Limpach at cl.cam.ac.uk>
+
+diff -r dbec76a720f8 -r 55f597e929f3 linux-2.6-xen-sparse/include/asm-i386/fixmap.h
+--- a/linux-2.6-xen-sparse/include/asm-i386/fixmap.h	Mon Feb 27 10:26:01 2006 +0000
++++ b/linux-2.6-xen-sparse/include/asm-i386/fixmap.h	Mon Feb 27 10:27:57 2006 +0000
+@@ -52,7 +52,6 @@
+  */
+ enum fixed_addresses {
+ 	FIX_HOLE,
+-	FIX_VSYSCALL,
+ #ifdef CONFIG_X86_LOCAL_APIC
+ 	FIX_APIC_BASE,	/* local (CPU) APIC) -- required for SMP or not */
+ #endif
+@@ -116,14 +115,6 @@ extern void __set_fixmap (enum fixed_add
+ #define __fix_to_virt(x)	(FIXADDR_TOP - ((x) << PAGE_SHIFT))
+ #define __virt_to_fix(x)	((FIXADDR_TOP - ((x)&PAGE_MASK)) >> PAGE_SHIFT)
+ 
+-/*
+- * This is the range that is readable by user mode, and things
+- * acting like user mode such as get_user_pages.
+- */
+-#define FIXADDR_USER_START	(__fix_to_virt(FIX_VSYSCALL))
+-#define FIXADDR_USER_END	(FIXADDR_USER_START + PAGE_SIZE)
+-
+-
+ extern void __this_fixmap_does_not_exist(void);
+ 
+ /*
+diff -r dbec76a720f8 -r 55f597e929f3 linux-2.6-xen-sparse/include/asm-i386/page.h
+--- a/linux-2.6-xen-sparse/include/asm-i386/page.h	Mon Feb 27 10:26:01 2006 +0000
++++ b/linux-2.6-xen-sparse/include/asm-i386/page.h	Mon Feb 27 10:27:57 2006 +0000
+@@ -139,6 +139,8 @@ extern int page_is_ram(unsigned long pag
+ 	((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0 ) | \
+ 		 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
+ 
++#define __HAVE_ARCH_GATE_AREA 1
++
+ #endif /* __KERNEL__ */
+ 
+ #include <asm-generic/page.h>




More information about the fedora-cvs-commits mailing list