rpms/kernel/devel kernel-2.6.spec, 1.1268, 1.1269 linux-2.6.11-execshield-vdso.patch, 1.2, 1.3

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Wed Apr 27 00:28:48 UTC 2005


Author: davej

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

Modified Files:
	kernel-2.6.spec linux-2.6.11-execshield-vdso.patch 
Log Message:
fix up the vdso again.




Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.1268
retrieving revision 1.1269
diff -u -r1.1268 -r1.1269
--- kernel-2.6.spec	26 Apr 2005 22:51:05 -0000	1.1268
+++ kernel-2.6.spec	27 Apr 2005 00:28:45 -0000	1.1269
@@ -1149,6 +1149,7 @@
 
 %changelog
 * Tue Apr 26 2005 Dave Jones <davej at redhat.com>
+- Fix up the vdso again, which broke on the last rebase to -rc3
 - Fix the put_user() fix. (#155999)
 
 * Mon Apr 25 2005 Dave Jones <davej at redhat.com>

linux-2.6.11-execshield-vdso.patch:
 linux-2.6.11/arch/i386/kernel/sysenter.c  |   71 ++++++++++++++++++------------
 linux-2.6.11/fs/binfmt_elf.c              |   11 +---
 linux-2.6.11/include/asm-i386/elf.h       |    7 ++
 linux-2.6.11/include/asm-i386/page.h      |    5 ++
 linux-2.6.11/include/linux/mm.h           |    5 ++
 linux-2.6.11/mm/mmap.c                    |   39 ++++++++++++++++
 linux-2.6.8/arch/i386/kernel/cpu/common.c |    6 ++
 7 files changed, 109 insertions(+), 35 deletions(-)

Index: linux-2.6.11-execshield-vdso.patch
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/linux-2.6.11-execshield-vdso.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- linux-2.6.11-execshield-vdso.patch	13 Apr 2005 02:43:48 -0000	1.2
+++ linux-2.6.11-execshield-vdso.patch	27 Apr 2005 00:28:45 -0000	1.3
@@ -113,37 +113,9 @@
  static int __init vdso_setup(char *str)
 --- linux-2.6.11/fs/binfmt_elf.c
 +++ linux-2.6.11/fs/binfmt_elf.c
-@@ -848,14 +848,6 @@ static int load_elf_binary(struct linux_
- 		goto out_free_dentry;
+@@ -1016,14 +1016,6 @@ static int load_elf_binary(struct linux_
  	}
- 	
--#ifdef ARCH_HAS_SETUP_ADDITIONAL_PAGES
--	retval = arch_setup_additional_pages(bprm, executable_stack);
--	if (retval < 0) {
--		send_sig(SIGKILL, current, 0);
--		goto out_free_dentry;
--	}
--#endif /* ARCH_HAS_SETUP_ADDITIONAL_PAGES */
--
- 	current->mm->start_stack = bprm->p;
- 
- 
-@@ -1011,19 +1003,19 @@ static int load_elf_binary(struct linux_
- 
- 	kfree(elf_phdata);
- 
-+#ifdef ARCH_HAS_SETUP_ADDITIONAL_PAGES
-+	retval = arch_setup_additional_pages(bprm, executable_stack);
-+	if (retval < 0) {
-+		send_sig(SIGKILL, current, 0);
-+		goto out_free_dentry;
-+	}
-+#endif /* ARCH_HAS_SETUP_ADDITIONAL_PAGES */
-+
- 	if (interpreter_type != INTERPRETER_AOUT)
- 		sys_close(elf_exec_fileno);
- 
- 	set_binfmt(&elf_format);
+ #endif /* ARCH_HAS_SETUP_ADDITIONAL_PAGES */
  
 -	/*
 -	 * Map the vsyscall trampoline. This address is then passed via
@@ -265,230 +237,3 @@
 +	return err;
 +}
 
-From akpm at osdl.org Tue Apr 12 22:31:56 2005
-From: akpm at osdl.org
-To: torvalds at osdl.org
-Cc: linux-kernel at vger.kernel.org, akpm at osdl.org, roland at redhat.com
-Subject: [patch 064/198] i386: Use loaddebug macro consistently
-Date: Tue, 12 Apr 2005 03:31:36 -0700
-Message-Id: <200504121031.j3CAVg4w005383 at shell0.pdx.osdl.net>
-Status: RO
-
-
-From: Roland McGrath <roland at redhat.com>
-
-This moves the macro loaddebug from asm-i386/suspend.h to
-asm-i386/processor.h, which is the place that makes sense for it to be
-defined, removes the extra copy of the same macro in
-arch/i386/kernel/process.c, and makes arch/i386/kernel/signal.c use the
-macro in place of its expansion.
-
-This is a purely cosmetic cleanup for the normal i386 kernel.  However, it
-is handy for Xen to be able to just redefine the loaddebug macro once
-instead of also changing the signal.c code.
-
-Signed-off-by: Roland McGrath <roland at redhat.com>
-Signed-off-by: Andrew Morton <akpm at osdl.org>
----
-
- 25-akpm/arch/i386/kernel/process.c   |    7 -------
- 25-akpm/arch/i386/kernel/signal.c    |    2 +-
- 25-akpm/include/asm-i386/processor.h |    8 ++++++++
- 25-akpm/include/asm-i386/suspend.h   |    5 -----
- 4 files changed, 9 insertions(+), 13 deletions(-)
-
-diff -puN arch/i386/kernel/process.c~i386-use-loaddebug-macro-consistently arch/i386/kernel/process.c
---- 25/arch/i386/kernel/process.c~i386-use-loaddebug-macro-consistently	2005-04-12 03:21:18.732289160 -0700
-+++ 25-akpm/arch/i386/kernel/process.c	2005-04-12 03:21:18.740287944 -0700
-@@ -558,13 +558,6 @@ handle_io_bitmap(struct thread_struct *n
- 	 */
- 	tss->io_bitmap_base = INVALID_IO_BITMAP_OFFSET_LAZY;
- }
--/*
-- * This special macro can be used to load a debugging register
-- */
--#define loaddebug(thread,register) \
--		__asm__("movl %0,%%db" #register  \
--			: /* no output */ \
--			:"r" (thread->debugreg[register]))
- 
- /*
-  *	switch_to(x,yn) should switch tasks from x to y.
-diff -puN arch/i386/kernel/signal.c~i386-use-loaddebug-macro-consistently arch/i386/kernel/signal.c
---- 25/arch/i386/kernel/signal.c~i386-use-loaddebug-macro-consistently	2005-04-12 03:21:18.734288856 -0700
-+++ 25-akpm/arch/i386/kernel/signal.c	2005-04-12 03:21:18.741287792 -0700
-@@ -618,7 +618,7 @@ int fastcall do_signal(struct pt_regs *r
- 		 * inside the kernel.
- 		 */
- 		if (unlikely(current->thread.debugreg[7])) {
--			__asm__("movl %0,%%db7"	: : "r" (current->thread.debugreg[7]));
-+			loaddebug(&current->thread, 7);
- 		}
- 
- 		/* Whee!  Actually deliver the signal.  */
-diff -puN include/asm-i386/processor.h~i386-use-loaddebug-macro-consistently include/asm-i386/processor.h
---- 25/include/asm-i386/processor.h~i386-use-loaddebug-macro-consistently	2005-04-12 03:21:18.735288704 -0700
-+++ 25-akpm/include/asm-i386/processor.h	2005-04-12 03:21:18.741287792 -0700
-@@ -499,6 +499,14 @@ static inline void load_esp0(struct tss_
- 	regs->esp = new_esp;					\
- } while (0)
- 
-+/*
-+ * This special macro can be used to load a debugging register
-+ */
-+#define loaddebug(thread,register) \
-+               __asm__("movl %0,%%db" #register  \
-+                       : /* no output */ \
-+                       :"r" ((thread)->debugreg[register]))
-+
- /* Forward declaration, a strange C thing */
- struct task_struct;
- struct mm_struct;
-diff -puN include/asm-i386/suspend.h~i386-use-loaddebug-macro-consistently include/asm-i386/suspend.h
---- 25/include/asm-i386/suspend.h~i386-use-loaddebug-macro-consistently	2005-04-12 03:21:18.736288552 -0700
-+++ 25-akpm/include/asm-i386/suspend.h	2005-04-12 03:21:18.742287640 -0700
-@@ -36,11 +36,6 @@ struct saved_context {
- 	unsigned long return_address;
- } __attribute__((packed));
- 
--#define loaddebug(thread,register) \
--               __asm__("movl %0,%%db" #register  \
--                       : /* no output */ \
--                       :"r" ((thread)->debugreg[register]))
--
- #ifdef CONFIG_ACPI_SLEEP
- extern unsigned long saved_eip;
- extern unsigned long saved_esp;
-_
-
-From akpm at osdl.org Tue Apr 12 22:31:59 2005
-From: akpm at osdl.org
-To: torvalds at osdl.org
-Cc: linux-kernel at vger.kernel.org, akpm at osdl.org, roland at redhat.com
-Subject: [patch 065/198] i386 vDSO: add PT_NOTE segment
-Date: Tue, 12 Apr 2005 03:31:37 -0700
-Message-Id: <200504121031.j3CAVhiF005387 at shell0.pdx.osdl.net>
-Status: RO
-
-
-From: Roland McGrath <roland at redhat.com>
-
-This patch adds an ELF note to the vDSO giving the LINUX_VERSION_CODE
-value.  Having this in the vDSO lets the dynamic linker avoid the `uname'
-syscall it now always does at startup to ascertain the kernel ABI
-available.
-
-Signed-off-by: Roland McGrath <roland at redhat.com>
-Signed-off-by: Andrew Morton <akpm at osdl.org>
----
-
- 25-akpm/arch/i386/kernel/Makefile        |    6 ++++--
- 25-akpm/arch/i386/kernel/vsyscall-note.S |   25 +++++++++++++++++++++++++
- 25-akpm/arch/i386/kernel/vsyscall.lds.S  |    3 ++-
- 3 files changed, 31 insertions(+), 3 deletions(-)
-
-diff -puN arch/i386/kernel/Makefile~i386-vdso-add-pt_note-segment arch/i386/kernel/Makefile
---- 25/arch/i386/kernel/Makefile~i386-vdso-add-pt_note-segment	2005-04-12 03:21:18.982251160 -0700
-+++ 25-akpm/arch/i386/kernel/Makefile	2005-04-12 03:21:18.986250552 -0700
-@@ -56,7 +56,8 @@ SYSCFLAGS_vsyscall-sysenter.so	= $(vsysc
- SYSCFLAGS_vsyscall-int80.so	= $(vsyscall-flags)
- 
- $(obj)/vsyscall-int80.so $(obj)/vsyscall-sysenter.so: \
--$(obj)/vsyscall-%.so: $(src)/vsyscall.lds $(obj)/vsyscall-%.o FORCE
-+$(obj)/vsyscall-%.so: $(src)/vsyscall.lds \
-+		      $(obj)/vsyscall-%.o $(obj)/vsyscall-note.o FORCE
- 	$(call if_changed,syscall)
- 
- # We also create a special relocatable object that should mirror the symbol
-@@ -67,5 +68,6 @@ $(obj)/built-in.o: $(obj)/vsyscall-syms.
- $(obj)/built-in.o: ld_flags += -R $(obj)/vsyscall-syms.o
- 
- SYSCFLAGS_vsyscall-syms.o = -r
--$(obj)/vsyscall-syms.o: $(src)/vsyscall.lds $(obj)/vsyscall-sysenter.o FORCE
-+$(obj)/vsyscall-syms.o: $(src)/vsyscall.lds \
-+			$(obj)/vsyscall-sysenter.o $(obj)/vsyscall-note.o FORCE
- 	$(call if_changed,syscall)
-diff -puN arch/i386/kernel/vsyscall.lds.S~i386-vdso-add-pt_note-segment arch/i386/kernel/vsyscall.lds.S
---- 25/arch/i386/kernel/vsyscall.lds.S~i386-vdso-add-pt_note-segment	2005-04-12 03:21:18.983251008 -0700
-+++ 25-akpm/arch/i386/kernel/vsyscall.lds.S	2005-04-12 03:21:18.987250400 -0700
-@@ -23,7 +23,7 @@ SECTIONS
-   . = VSYSCALL_BASE + 0x400;
- 
-   .text           : { *(.text) }		:text =0x90909090
--
-+  .note		  : { *(.note.*) }		:text :note
-   .eh_frame_hdr   : { *(.eh_frame_hdr) }	:text :eh_frame_hdr
-   .eh_frame       : { KEEP (*(.eh_frame)) }	:text
-   .dynamic        : { *(.dynamic) }		:text :dynamic
-@@ -43,6 +43,7 @@ PHDRS
- {
-   text PT_LOAD FILEHDR PHDRS FLAGS(5); /* PF_R|PF_X */
-   dynamic PT_DYNAMIC FLAGS(4); /* PF_R */
-+  note PT_NOTE FLAGS(4); /* PF_R */
-   eh_frame_hdr 0x6474e550; /* PT_GNU_EH_FRAME, but ld doesn't match the name */
- }
- 
-diff -puN /dev/null arch/i386/kernel/vsyscall-note.S
---- /dev/null	2003-09-15 06:40:47.000000000 -0700
-+++ 25-akpm/arch/i386/kernel/vsyscall-note.S	2005-04-12 03:21:18.987250400 -0700
-@@ -0,0 +1,25 @@
-+/*
-+ * This supplies .note.* sections to go into the PT_NOTE inside the vDSO text.
-+ * Here we can supply some information useful to userland.
-+ */
-+
-+#include <linux/uts.h>
-+#include <linux/version.h>
-+
-+#define ASM_ELF_NOTE_BEGIN(name, flags, vendor, type)			      \
-+	.section name, flags;						      \
-+	.balign 4;							      \
-+	.long 1f - 0f;		/* name length */			      \
-+	.long 3f - 2f;		/* data length */			      \
-+	.long type;		/* note type */				      \
-+0:	.asciz vendor;		/* vendor name */			      \
-+1:	.balign 4;							      \
-+2:
-+
-+#define ASM_ELF_NOTE_END						      \
-+3:	.balign 4;		/* pad out section */			      \
-+	.previous
-+
-+	ASM_ELF_NOTE_BEGIN(".note.kernel-version", "a", UTS_SYSNAME, 0)
-+	.long LINUX_VERSION_CODE
-+	ASM_ELF_NOTE_END
-_
-
-From akpm at osdl.org Tue Apr 12 22:32:01 2005
-From: akpm at osdl.org
-To: torvalds at osdl.org
-Cc: linux-kernel at vger.kernel.org, akpm at osdl.org, roland at redhat.com
-Subject: [patch 066/198] x86-64: i386 vDSO: add PT_NOTE segment
-Date: Tue, 12 Apr 2005 03:31:37 -0700
-Message-Id: <200504121031.j3CAViF8005391 at shell0.pdx.osdl.net>
-Status: RO
-
-
-From: Roland McGrath <roland at redhat.com>
-
-Use the i386 PT_NOTE segment in x86_64 as well.
-
-Signed-off-by: Roland McGrath <roland at redhat.com>
-Signed-off-by: Andrew Morton <akpm at osdl.org>
----
-
- 25-akpm/arch/x86_64/ia32/vsyscall-sigreturn.S |    3 +++
- 1 files changed, 3 insertions(+)
-
-diff -puN arch/x86_64/ia32/vsyscall-sigreturn.S~x86-64-i386-vdso-add-pt_note-segment arch/x86_64/ia32/vsyscall-sigreturn.S
---- 25/arch/x86_64/ia32/vsyscall-sigreturn.S~x86-64-i386-vdso-add-pt_note-segment	2005-04-12 03:21:19.362193400 -0700
-+++ 25-akpm/arch/x86_64/ia32/vsyscall-sigreturn.S	2005-04-12 03:21:19.365192944 -0700
-@@ -118,3 +118,6 @@ __kernel_rt_sigreturn:
- 
- 	.align 4
- .LENDFDE3:
-+
-+#include "../../i386/kernel/vsyscall-note.S"
-+
-_
-




More information about the fedora-cvs-commits mailing list