s390/entry: remove broken and not needed code
authorHeiko Carstens <hca@linux.ibm.com>
Tue, 3 May 2022 12:59:16 +0000 (14:59 +0200)
committerHeiko Carstens <hca@linux.ibm.com>
Fri, 6 May 2022 18:45:15 +0000 (20:45 +0200)
LLVM's integrated assembler reports the following error when compiling
entry.S:

<instantiation>:38:5: error: unknown token in expression
 tm %r8,0x0001 # coming from user space?

The correct instruction would have been tmhh instead of tm.
The current code is doing nothing, since (with gas) it get's
translated to a tm instruction which reads from real address 8, which
again contains always zero, and therefore the conditional code is
never executed.
Note that due to the missing displacement gas translates "%r8" into
"8(%r0)".

Also code inspection reveals that this conditional code is not needed.
Therefore remove it.

Reviewed-by: Sven Schnelle <svens@linux.ibm.com>
Reviewed-by: Alexander Gordeev <agordeev@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/kernel/entry.S

index 59b69c8..a6008e5 100644 (file)
@@ -473,10 +473,7 @@ ENTRY(\name)
        mvc     __PT_R8(64,%r11),__LC_SAVE_AREA_ASYNC
        MBEAR   %r11
        stmg    %r8,%r9,__PT_PSW(%r11)
-       tm      %r8,0x0001              # coming from user space?
-       jno     1f
-       lctlg   %c1,%c1,__LC_KERNEL_ASCE
-1:     lgr     %r2,%r11                # pass pointer to pt_regs
+       lgr     %r2,%r11                # pass pointer to pt_regs
        brasl   %r14,\handler
        mvc     __LC_RETURN_PSW(16),__PT_PSW(%r11)
        tmhh    %r8,0x0001              # returning to user ?