]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
ARM: Fix broken commit 0cc41e4a21d43 corrupting kernel messages
authorRussell King <rmk+kernel@arm.linux.org.uk>
Tue, 26 Feb 2013 14:41:41 +0000 (14:41 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Fri, 1 Mar 2013 21:09:59 +0000 (21:09 +0000)
Commit 0cc41e4a21d43 (arch: remove direct definitions of KERN_<LEVEL>
uses) is broken - not enough thought was put into changing:

.asciz "string"

to

.asciz "string1" "string2"

The problem is that each string gets _separately_ NUL terminated, so
the result is a string containing:

"string1\0string2\0"

rather than:

"string1string2\0"

With our new printk levels, this ends up as - eg, KERN_DEBUG "string":

0x01 0x00 0x07 0x00 "string" 0x00

which produces lots of \x01 in the kernel log.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/vfp/vfphw.S

index dd5e56f95f3fbe3d03f7be90f1201a78a93ed568..8d10dc8a1e17b34776a366f4b71fcca68c21bf8a 100644 (file)
        .macro  DBGSTR, str
 #ifdef DEBUG
        stmfd   sp!, {r0-r3, ip, lr}
-       add     r0, pc, #4
+       ldr     r0, =1f
        bl      printk
-       b       1f
-       .asciz  KERN_DEBUG "VFP: \str\n"
-       .balign 4
-1:     ldmfd   sp!, {r0-r3, ip, lr}
+       ldmfd   sp!, {r0-r3, ip, lr}
+
+       .pushsection .rodata, "a"
+1:     .ascii  KERN_DEBUG "VFP: \str\n"
+       .byte   0
+       .previous
 #endif
        .endm
 
 #ifdef DEBUG
        stmfd   sp!, {r0-r3, ip, lr}
        mov     r1, \arg
-       add     r0, pc, #4
+       ldr     r0, =1f
        bl      printk
-       b       1f
-       .asciz  KERN_DEBUG "VFP: \str\n"
-       .balign 4
-1:     ldmfd   sp!, {r0-r3, ip, lr}
+       ldmfd   sp!, {r0-r3, ip, lr}
+
+       .pushsection .rodata, "a"
+1:     .ascii  KERN_DEBUG "VFP: \str\n"
+       .byte   0
+       .previous
 #endif
        .endm
 
        mov     r3, \arg3
        mov     r2, \arg2
        mov     r1, \arg1
-       add     r0, pc, #4
+       ldr     r0, =1f
        bl      printk
-       b       1f
-       .asciz  KERN_DEBUG "VFP: \str\n"
-       .balign 4
-1:     ldmfd   sp!, {r0-r3, ip, lr}
+       ldmfd   sp!, {r0-r3, ip, lr}
+
+       .pushsection .rodata, "a"
+1:     .ascii  KERN_DEBUG "VFP: \str\n"
+       .byte   0
+       .previous
 #endif
        .endm