Message ID | nycvar.YSQ.7.76.1710311302370.21665@knanqh.ubzr (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Tue, Oct 31, 2017 at 01:06:35PM -0400, Nicolas Pitre wrote: > That's easy to veryfy with this patch: Unfortunately not that easy, this patch breaks printch. > diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S > index ea9646cc2a..40023a4871 100644 > --- a/arch/arm/kernel/debug.S > +++ b/arch/arm/kernel/debug.S > @@ -79,18 +79,21 @@ hexbuf: .space 16 > The new code is: > ENTRY(printascii) > addruart_current r3, r1, r2 > +1: teq r0, #0 > ldrneb r1, [r0], #1 > teqne r1, #0 > + reteq lr > + teq r1, #'\n' > + bne 2f > + mov r1, '\r' > + waituart r2, r3 > + senduart r1, r3 > + busyuart r2, r3 > + mov r1, '\n' > +2: waituart r2, r3 > + senduart r1, r3 > + busyuart r2, r3 > + b 1b > ENDPROC(printascii) and printch jumps to the 1: label with r0 = 0 and r1 = character. Your change has the effect that the "reteq" will always be taken when called by printch.
diff --git a/arch/arm/kernel/debug.S b/arch/arm/kernel/debug.S index ea9646cc2a..40023a4871 100644 --- a/arch/arm/kernel/debug.S +++ b/arch/arm/kernel/debug.S @@ -79,18 +79,21 @@ 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 + teq r1, #'\n' + bne 2f + mov r1, '\r' + waituart r2, r3 + senduart r1, r3 + busyuart r2, r3 + mov r1, '\n' +2: waituart r2, r3 + senduart r1, r3 + busyuart r2, r3 + b 1b ENDPROC(printascii) ENTRY(printch)