s390/entry: use cpu alternative for stck/stckf
authorHeiko Carstens <hca@linux.ibm.com>
Tue, 2 Feb 2021 12:46:47 +0000 (13:46 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Tue, 9 Feb 2021 14:57:05 +0000 (15:57 +0100)
Use a cpu alternative to switch between stck and stckf instead of
making it compile time dependent. This will also make kernels compiled
for old machines, but running on newer machines, use stckf.

Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
arch/s390/kernel/entry.S

index 785425b..9b3aea9 100644 (file)
@@ -106,12 +106,10 @@ _LPP_OFFSET       = __LC_LPP
 2:     la      %r11,STACK_FRAME_OVERHEAD(%r15)
        .endm
 
+       # Use STORE CLOCK by default, switch to STORE CLOCK FAST if available.
        .macro STCK savearea
-#ifdef CONFIG_HAVE_MARCH_Z9_109_FEATURES
-       .insn   s,0xb27c0000,\savearea          # store clock fast
-#else
-       .insn   s,0xb2050000,\savearea          # store clock
-#endif
+       ALTERNATIVE ".insn      s,0xb2050000,\savearea", \
+                   ".insn      s,0xb27c0000,\savearea", 25
        .endm
 
        /*