rpms/kernel/devel linux-2.6-x86-fix-sigcontext-user-export.patch, NONE, 1.1 kernel.spec, 1.422, 1.423
Kyle McMartin (kyle)
fedora-extras-commits at redhat.com
Wed Feb 13 21:57:05 UTC 2008
Author: kyle
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv24980
Modified Files:
kernel.spec
Added Files:
linux-2.6-x86-fix-sigcontext-user-export.patch
Log Message:
* Wed Feb 13 2008 Kyle McMartin <kmcmartin at redhat.com>
- Added patch from Jakub to fix sigcontext.h export on x86.
linux-2.6-x86-fix-sigcontext-user-export.patch:
--- NEW FILE linux-2.6-x86-fix-sigcontext-user-export.patch ---
From: Ingo Molnar <mingo at elte.hu>
Date: Wed, 13 Feb 2008 15:47:45 +0000 (+0100)
Subject: x86: fix sigcontext.h user export
X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fx86%2Flinux-2.6-x86.git;a=commitdiff_plain;h=889fec7faa2570b1467dfa5ee444f92eaf1dfc14
x86: fix sigcontext.h user export
Jakub Jelinek reported that some user-space code that relies on
kernel headers has built dependency on the sigcontext->eip/rip
register names - which have been unified in commit:
commit 742fa54a62be6a263df14a553bf832724471dfbe
Author: H. Peter Anvin <hpa at zytor.com>
Date: Wed Jan 30 13:30:56 2008 +0100
x86: use generic register names in struct sigcontext
so give the old layout to user-space. This is not particularly
pretty, but it's an ABI so there's no danger of the two definitions
getting out of sync.
Reported-by: Jakub Jelinek <jakub at redhat.com>
Signed-off-by: Ingo Molnar <mingo at elte.hu>
---
diff --git a/include/asm-x86/sigcontext.h b/include/asm-x86/sigcontext.h
index 681dead..d743947 100644
--- a/include/asm-x86/sigcontext.h
+++ b/include/asm-x86/sigcontext.h
@@ -58,6 +58,7 @@ struct _fpstate {
#define X86_FXSR_MAGIC 0x0000
+#ifdef __KERNEL__
struct sigcontext {
unsigned short gs, __gsh;
unsigned short fs, __fsh;
@@ -82,6 +83,35 @@ struct sigcontext {
unsigned long oldmask;
unsigned long cr2;
};
+#else /* __KERNEL__ */
+/*
+ * User-space might still rely on the old definition:
+ */
+struct sigcontext {
+ unsigned short gs, __gsh;
+ unsigned short fs, __fsh;
+ unsigned short es, __esh;
+ unsigned short ds, __dsh;
+ unsigned long edi;
+ unsigned long esi;
+ unsigned long ebp;
+ unsigned long esp;
+ unsigned long ebx;
+ unsigned long edx;
+ unsigned long ecx;
+ unsigned long eax;
+ unsigned long trapno;
+ unsigned long err;
+ unsigned long eip;
+ unsigned short cs, __csh;
+ unsigned long eflags;
+ unsigned long esp_at_signal;
+ unsigned short ss, __ssh;
+ struct _fpstate __user * fpstate;
+ unsigned long oldmask;
+ unsigned long cr2;
+};
+#endif /* !__KERNEL__ */
#else /* __i386__ */
@@ -102,6 +132,7 @@ struct _fpstate {
__u32 reserved2[24];
};
+#ifdef __KERNEL__
struct sigcontext {
unsigned long r8;
unsigned long r9;
@@ -132,6 +163,41 @@ struct sigcontext {
struct _fpstate __user *fpstate; /* zero when no FPU context */
unsigned long reserved1[8];
};
+#else /* __KERNEL__ */
+/*
+ * User-space might still rely on the old definition:
+ */
+struct sigcontext {
+ unsigned long r8;
+ unsigned long r9;
+ unsigned long r10;
+ unsigned long r11;
+ unsigned long r12;
+ unsigned long r13;
+ unsigned long r14;
+ unsigned long r15;
+ unsigned long rdi;
+ unsigned long rsi;
+ unsigned long rbp;
+ unsigned long rbx;
+ unsigned long rdx;
+ unsigned long rax;
+ unsigned long rcx;
+ unsigned long rsp;
+ unsigned long rip;
+ unsigned long eflags; /* RFLAGS */
+ unsigned short cs;
+ unsigned short gs;
+ unsigned short fs;
+ unsigned short __pad0;
+ unsigned long err;
+ unsigned long trapno;
+ unsigned long oldmask;
+ unsigned long cr2;
+ struct _fpstate __user *fpstate; /* zero when no FPU context */
+ unsigned long reserved1[8];
+};
+#endif /* !__KERNEL__ */
#endif /* !__i386__ */
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.422
retrieving revision 1.423
diff -u -r1.422 -r1.423
--- kernel.spec 13 Feb 2008 19:43:25 -0000 1.422
+++ kernel.spec 13 Feb 2008 21:56:26 -0000 1.423
@@ -550,11 +550,11 @@
# stable release candidate
# Patch03: patch-2.6.24.1-rc1.bz2
-Patch05: linux-2.6-cve-2008-0600.patch
-
# we always need nonintconfig, even for -vanilla kernels
Patch06: linux-2.6-build-nonintconfig.patch
+Patch07: linux-2.6-x86-fix-sigcontext-user-export.patch
+
%if !%{nopatches}
Patch10: linux-2.6-hotfixes.patch
@@ -972,6 +972,7 @@
%if !%{nopatches}
ApplyPatch linux-2.6-hotfixes.patch
+ApplyPatch linux-2.6-x86-fix-sigcontext-user-export.patch
# Roland's utrace ptrace replacement.
# Main patch includes i386, x86_64, powerpc.
@@ -1742,6 +1743,9 @@
%kernel_variant_files -a /%{image_install_path}/xen*-%{KVERREL} -e /etc/ld.so.conf.d/kernelcap-%{KVERREL}.conf %{with_xen} xen
%changelog
+* Wed Feb 13 2008 Kyle McMartin <kmcmartin at redhat.com>
+- Added patch from Jakub to fix sigcontext.h export on x86.
+
* Wed Feb 13 2008 Dennis Gilmore <dennis at ausil.us>
- build headers on sparc64 because the buildsys needs them
More information about the fedora-extras-commits
mailing list