]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
s390/entry: Scrub r12 register on kernel entry
authorVasily Gorbik <gor@linux.ibm.com>
Thu, 26 Mar 2026 18:50:14 +0000 (19:50 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Fri, 27 Mar 2026 23:43:39 +0000 (00:43 +0100)
Before commit f33f2d4c7c80 ("s390/bp: remove TIF_ISOLATE_BP"),
all entry handlers loaded r12 with the current task pointer
(lg %r12,__LC_CURRENT) for use by the BPENTER/BPEXIT macros. That
commit removed TIF_ISOLATE_BP, dropping both the branch prediction
macros and the r12 load, but did not add r12 to the register clearing
sequence.

Add the missing xgr %r12,%r12 to make the register scrub consistent
across all entry points.

Fixes: f33f2d4c7c80 ("s390/bp: remove TIF_ISOLATE_BP")
Cc: stable@kernel.org
Reviewed-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/kernel/entry.S

index 4873fe9d891ba2748c5bb5519c4b3b9ade92de64..689d253e1afc7d308fae4e04cfa97426abbfe490 100644 (file)
@@ -271,6 +271,7 @@ SYM_CODE_START(system_call)
        xgr     %r9,%r9
        xgr     %r10,%r10
        xgr     %r11,%r11
+       xgr     %r12,%r12
        la      %r2,STACK_FRAME_OVERHEAD(%r15)  # pointer to pt_regs
        mvc     __PT_R8(64,%r2),__LC_SAVE_AREA(%r13)
        MBEAR   %r2,%r13
@@ -407,6 +408,7 @@ SYM_CODE_START(\name)
        xgr     %r6,%r6
        xgr     %r7,%r7
        xgr     %r10,%r10
+       xgr     %r12,%r12
        xc      __PT_FLAGS(8,%r11),__PT_FLAGS(%r11)
        mvc     __PT_R8(64,%r11),__LC_SAVE_AREA(%r13)
        MBEAR   %r11,%r13
@@ -496,6 +498,7 @@ SYM_CODE_START(mcck_int_handler)
        xgr     %r6,%r6
        xgr     %r7,%r7
        xgr     %r10,%r10
+       xgr     %r12,%r12
        stmg    %r8,%r9,__PT_PSW(%r11)
        xc      __PT_FLAGS(8,%r11),__PT_FLAGS(%r11)
        xc      __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)