]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
m68k: Avoid pointless recursion in debug console rendering
authorFinn Thain <fthain@linux-m68k.org>
Thu, 27 Mar 2025 22:39:55 +0000 (09:39 +1100)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Sun, 6 Jul 2025 10:50:50 +0000 (12:50 +0200)
The recursive call to console_putc to effect a carriage return is
needlessly slow and complicated. Instead, just clear the column counter
directly. Setup %a0 earlier to avoid a repeated comparison.

Signed-off-by: Finn Thain <fthain@linux-m68k.org>
Tested-by: Stan Johnson <userm57@yahoo.com>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/a6104f41918bed4fd17f92c45df94ac7a5d30e40.1743115195.git.fthain@linux-m68k.org
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
arch/m68k/kernel/head.S

index 9bd8adaa756dbe06376c5ae6f12f92d8c12ab566..49e079b0d0b5a8b6298e3a854bdd9cff85c74c60 100644 (file)
@@ -3533,19 +3533,16 @@ func_start      console_putc,%a0/%a1/%d0-%d7
        tstl    %pc@(L(console_font))
        jeq     L(console_exit)
 
+       lea     %pc@(L(console_globals)),%a0
+
        /* Output character in d7 on console.
         */
        movel   ARG1,%d7
        cmpib   #'\n',%d7
-       jbne    1f
+       jne     L(console_not_lf)
 
-       /* A little safe recursion is good for the soul */
-       console_putc    #'\r'
-1:
-       lea     %pc@(L(console_globals)),%a0
+       clrl    %a0@(Lconsole_struct_cur_column)        /* implicit \r */
 
-       cmpib   #10,%d7
-       jne     L(console_not_lf)
        movel   %a0@(Lconsole_struct_cur_row),%d0
        movel   %a0@(Lconsole_struct_num_rows),%d1
        cmpl    %d1,%d0