Pull kmalloc into release branch
[pandora-kernel.git] / arch / arm / lib / backtrace.S
index 68a21c0..7423008 100644 (file)
@@ -10,7 +10,6 @@
  * 27/03/03 Ian Molton Clean up CONFIG_CPU
  *
  */
-#include <linux/config.h>
 #include <linux/linkage.h>
 #include <asm/assembler.h>
                .text
@@ -29,7 +28,7 @@ ENTRY(__backtrace)
 
 ENTRY(c_backtrace)
 
-#ifndef CONFIG_FRAME_POINTER
+#if !defined(CONFIG_FRAME_POINTER) || !defined(CONFIG_PRINTK)
                mov     pc, lr
 #else
 
@@ -41,7 +40,7 @@ ENTRY(c_backtrace)
                movne   r0, #0
                movs    frame, r0
 1:             moveq   r0, #-2
-               LOADREGS(eqfd, sp!, {r4 - r8, pc})
+               ldmeqfd sp!, {r4 - r8, pc}
 
 2:             stmfd   sp!, {pc}               @ calculate offset of PC in STMIA instruction
                ldr     r0, [sp], #4
@@ -85,7 +84,7 @@ ENTRY(c_backtrace)
                 * A zero next framepointer means we're done.
                 */
                teq     next, #0
-               LOADREGS(eqfd, sp!, {r4 - r8, pc})
+               ldmeqfd sp!, {r4 - r8, pc}
 
                /*
                 * The next framepointer must be above the
@@ -97,16 +96,13 @@ ENTRY(c_backtrace)
                b       1007f
 
 /*
- * Fixup for LDMDB
+ * Fixup for LDMDB.  Note that this must not be in the fixup section.
  */
-               .section .fixup,"ax"
-               .align  0
 1007:          ldr     r0, =.Lbad
                mov     r1, frame
                bl      printk
-               LOADREGS(fd, sp!, {r4 - r8, pc})
+               ldmfd   sp!, {r4 - r8, pc}
                .ltorg
-               .previous
                
                .section __ex_table,"a"
                .align  3
@@ -122,7 +118,7 @@ ENTRY(c_backtrace)
 #define reg   r5
 #define stack r6
 
-.Ldumpstm:     stmfd   sp!, {instr, reg, stack, r7, lr}
+.Ldumpstm:     stmfd   sp!, {instr, reg, stack, r7, r8, lr}
                mov     stack, r0
                mov     instr, r1
                mov     reg, #9
@@ -145,7 +141,7 @@ ENTRY(c_backtrace)
                adrne   r0, .Lcr
                blne    printk
                mov     r0, stack
-               LOADREGS(fd, sp!, {instr, reg, stack, r7, pc})
+               ldmfd   sp!, {instr, reg, stack, r7, r8, pc}
 
 .Lfp:          .asciz  " r%d = %08X%c"
 .Lcr:          .asciz  "\n"