[PATCH 10/32] s390/diag: Convert amode31 exception tables to EX_TABLE_INSN
From: Heiko Carstens
Date: Thu Oct 01 2026 - 06:37:30 EST
Convert all amode31 exception table entries to use EX_TABLE_INSN.
With EX_TABLE_INSN entries always point to the faulting instruction,
so named labels are replaced with numeric labels.
Signed-off-by: Heiko Carstens <hca@xxxxxxxxxxxxx>
---
arch/s390/kernel/text_amode31.S | 34 ++++++++++++++-------------------
1 file changed, 14 insertions(+), 20 deletions(-)
diff --git a/arch/s390/kernel/text_amode31.S b/arch/s390/kernel/text_amode31.S
index f007d892d0c5..7761de491443 100644
--- a/arch/s390/kernel/text_amode31.S
+++ b/arch/s390/kernel/text_amode31.S
@@ -19,9 +19,9 @@
* affects a few functions that are not performance-relevant.
*/
.macro BR_EX_AMODE31_r14
- exrl 0,0f
+ exrl 0,555f
j .
-0: br %r14
+555: br %r14
.endm
/*
@@ -33,15 +33,13 @@ SYM_TYPED_FUNC_START(_diag14_amode31)
lgr %r3,%r4
lhi %r5,-EIO
sam31
- diag %r1,%r2,0x14
-.Ldiag14_ex:
+0: diag %r1,%r2,0x14
ipm %r5
srl %r5,28
-.Ldiag14_fault:
- sam64
+1: sam64
lgfr %r2,%r5
BR_EX_AMODE31_r14
- EX_TABLE_AMODE31(.Ldiag14_ex, .Ldiag14_fault)
+ EX_TABLE_INSN_AMODE31(0b, 1b)
SYM_FUNC_END(_diag14_amode31)
/*
@@ -51,15 +49,13 @@ SYM_TYPED_FUNC_START(_diag210_amode31)
lgr %r1,%r2
lhi %r2,-1
sam31
- diag %r1,%r0,0x210
-.Ldiag210_ex:
+0: diag %r1,%r0,0x210
ipm %r2
srl %r2,28
-.Ldiag210_fault:
- sam64
+1: sam64
lgfr %r2,%r2
BR_EX_AMODE31_r14
- EX_TABLE_AMODE31(.Ldiag210_ex, .Ldiag210_fault)
+ EX_TABLE_INSN_AMODE31(0b, 1b)
SYM_FUNC_END(_diag210_amode31)
/*
@@ -68,12 +64,11 @@ SYM_FUNC_END(_diag210_amode31)
SYM_TYPED_FUNC_START(_diag8c_amode31)
llgf %r3,0(%r3)
sam31
- diag %r2,%r4,0x8c
-.Ldiag8c_ex:
- sam64
+0: diag %r2,%r4,0x8c
+1: sam64
lgfr %r2,%r3
BR_EX_AMODE31_r14
- EX_TABLE_AMODE31(.Ldiag8c_ex, .Ldiag8c_ex)
+ EX_TABLE_INSN_AMODE31(0b, 1b)
SYM_FUNC_END(_diag8c_amode31)
/*
* int _diag26c_amode31(void *req, void *resp, enum diag26c_sc subcode)
@@ -81,12 +76,11 @@ SYM_FUNC_END(_diag8c_amode31)
SYM_TYPED_FUNC_START(_diag26c_amode31)
lghi %r5,-EOPNOTSUPP
sam31
- diag %r2,%r4,0x26c
-.Ldiag26c_ex:
- sam64
+0: diag %r2,%r4,0x26c
+1: sam64
lgfr %r2,%r5
BR_EX_AMODE31_r14
- EX_TABLE_AMODE31(.Ldiag26c_ex, .Ldiag26c_ex)
+ EX_TABLE_INSN_AMODE31(0b, 1b)
SYM_FUNC_END(_diag26c_amode31)
/*
--
2.53.0