Merge tag 'locks-v4.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton...
[sfrench/cifs-2.6.git] / arch / arm / kernel / debug.S
index 0a498cb3fad88d046c23073a5d1b7785fdfaf1a7..b795dc2408c05a65fb3e28ec2001ebb04eaf50df 100644 (file)
@@ -55,7 +55,9 @@ ENDPROC(printhex4)
 
 ENTRY(printhex2)
                mov     r1, #2
-printhex:      adr     r2, hexbuf
+printhex:      adr     r2, hexbuf_rel
+               ldr     r3, [r2]
+               add     r2, r2, r3
                add     r3, r2, r1
                mov     r1, #0
                strb    r1, [r3]
@@ -71,7 +73,11 @@ printhex:    adr     r2, hexbuf
                b       printascii
 ENDPROC(printhex2)
 
-hexbuf:                .space 16
+               .pushsection .bss
+hexbuf_addr:   .space 16
+               .popsection
+               .align
+hexbuf_rel:    .long   hexbuf_addr - .
 
                .ltorg
 
@@ -79,25 +85,28 @@ hexbuf:             .space 16
 
 ENTRY(printascii)
                addruart_current r3, r1, r2
-               b       2f
-1:             waituart r2, r3
-               senduart r1, r3
-               busyuart r2, r3
-               teq     r1, #'\n'
-               moveq   r1, #'\r'
-               beq     1b
-2:             teq     r0, #0
+1:             teq     r0, #0
                ldrneb  r1, [r0], #1
                teqne   r1, #0
-               bne     1b
-               ret     lr
+               reteq   lr
+2:             teq     r1, #'\n'
+               bne     3f
+               mov     r1, #'\r'
+               waituart r2, r3
+               senduart r1, r3
+               busyuart r2, r3
+               mov     r1, #'\n'
+3:             waituart r2, r3
+               senduart r1, r3
+               busyuart r2, r3
+               b       1b
 ENDPROC(printascii)
 
 ENTRY(printch)
                addruart_current r3, r1, r2
                mov     r1, r0
                mov     r0, #0
-               b       1b
+               b       2b
 ENDPROC(printch)
 
 #ifdef CONFIG_MMU
@@ -124,7 +133,9 @@ ENTRY(printascii)
 ENDPROC(printascii)
 
 ENTRY(printch)
-               adr     r1, hexbuf
+               adr     r1, hexbuf_rel
+               ldr     r2, [r1]
+               add     r1, r1, r2
                strb    r0, [r1]
                mov     r0, #0x03               @ SYS_WRITEC
        ARM(    svc     #0x123456       )