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

rpms/kernel/FC-6 linux-2.6-ppc-fix-dso-unwind.patch, NONE, 1.1 kernel-2.6.spec, 1.3037, 1.3038



Author: dwmw2

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

Modified Files:
	kernel-2.6.spec 
Added Files:
	linux-2.6-ppc-fix-dso-unwind.patch 
Log Message:
Fix ppc64 vdso debuginfo (#349801)


linux-2.6-ppc-fix-dso-unwind.patch:
 sigtramp.S |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

--- NEW FILE linux-2.6-ppc-fix-dso-unwind.patch ---
Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=081c11a5d0cc24ab58adc7de2ddf209149bf176f
Commit:     081c11a5d0cc24ab58adc7de2ddf209149bf176f
Parent:     f66bce5e6aa1388289c04496c3fcae7bebf5f905
Author:     Benjamin Herrenschmidt <benh au1 ibm com>
AuthorDate: Wed Oct 17 14:26:50 2007 +1000
Committer:  Paul Mackerras <paulus samba org>
CommitDate: Wed Oct 17 22:30:09 2007 +1000

    [POWERPC] Fix 64 bits vDSO DWARF info for CR register
    
    The current DWARF info for CR are incorrect, causing the gcc unwinder to
    go to lunch if we take a segfault in the vdso.  This fixes it.
    
    Problem identified by Andrew Haley, and fix provided by Jakub Jelinek
    (thanks !).
    
    Unfortunately, a bug in gcc cause it to not quite work either, but that
    is being fixed separately with something around the lines of:
    
    linux-unwind.h:
    
         fs->regs.reg[R_CR2].loc.offset = (long) &regs->ccr - new_cfa;
    +    /* CR? regs are just 32-bit and PPC is big-endian.  */
    +    fs->regs.reg[R_CR2].loc.offset += sizeof (long) - 4;
    
    (According to Jakub)
    
    Signed-off-by: Benjamin Herrenschmidt <benh kernel crashing org>
    Signed-off-by: Paul Mackerras <paulus samba org>
---
 arch/powerpc/kernel/vdso64/sigtramp.S |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/kernel/vdso64/sigtramp.S b/arch/powerpc/kernel/vdso64/sigtramp.S
index 17a83fa..59eb59b 100644
--- a/arch/powerpc/kernel/vdso64/sigtramp.S
+++ b/arch/powerpc/kernel/vdso64/sigtramp.S
@@ -134,13 +134,16 @@ V_FUNCTION_END(__kernel_sigtramp_rt64)
 9:
 
 /* This is where the pt_regs pointer can be found on the stack.  */
-#define PTREGS 128+168+56
+#define PTREGS	128+168+56
 
 /* Size of regs.  */
-#define RSIZE 8
+#define RSIZE	8
+
+/* Size of CR reg in DWARF unwind info. */
+#define CRSIZE	4
 
 /* This is the offset of the VMX reg pointer.  */
-#define VREGS 48*RSIZE+33*8
+#define VREGS	48*RSIZE+33*8
 
 /* Describe where general purpose regs are saved.  */
 #define EH_FRAME_GEN \
@@ -178,7 +181,7 @@ V_FUNCTION_END(__kernel_sigtramp_rt64)
   rsave (31, 31*RSIZE);							\
   rsave (67, 32*RSIZE);		/* ap, used as temp for nip */		\
   rsave (65, 36*RSIZE);		/* lr */				\
-  rsave (70, 38*RSIZE)		/* cr */
+  rsave (70, 38*RSIZE + (RSIZE - CRSIZE)) /* cr */
 
 /* Describe where the FP regs are saved.  */
 #define EH_FRAME_FP \


Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/FC-6/kernel-2.6.spec,v
retrieving revision 1.3037
retrieving revision 1.3038
diff -u -r1.3037 -r1.3038
--- kernel-2.6.spec	9 Nov 2007 19:31:28 -0000	1.3037
+++ kernel-2.6.spec	13 Nov 2007 22:59:13 -0000	1.3038
@@ -525,6 +525,7 @@
 Patch90: linux-2.6-kvm-suspend.patch
 
 Patch100: linux-2.6-g5-therm-shutdown.patch
+Patch110: linux-2.6-ppc-fix-dso-unwind.patch
 Patch120: linux-2.6-ppc32-ucmpdi2.patch
 Patch130: linux-2.6-ibmvscsi-schizo.patch
 Patch140: linux-2.6-pmac-zilog.patch
@@ -1129,6 +1130,8 @@
 #
 # Alleviate G5 thermal shutdown problems
 ApplyPatch linux-2.6-g5-therm-shutdown.patch
+# Fix ppc64 vDSO DWARF info for CR register
+ApplyPatch linux-2.6-ppc-fix-dso-unwind.patch
 # Temporary hack to work around GCC PR #25724 / #21237
 ApplyPatch linux-2.6-ppc32-ucmpdi2.patch
 # Fix up ibmvscsi for combined pSeries/iSeries build
@@ -2275,6 +2278,9 @@
 %endif
 
 %changelog
+* Tue Nov 13 2007 David Woodhouse <dwmw2 redhat com>
+- Fix ppc64 vDSO DWARF info for CR register (#350291)
+
 * Fri Nov 02 2007 Chuck Ebbert <cebbert redhat com>
 - 2.6.22.12
 - Disable precise CPU accounting in the scheduler.


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