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(¤t->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