summaryrefslogtreecommitdiff
path: root/arch/s390/include/asm/asm-extable.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/s390/include/asm/asm-extable.h')
-rw-r--r--arch/s390/include/asm/asm-extable.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/arch/s390/include/asm/asm-extable.h b/arch/s390/include/asm/asm-extable.h
index 620390f17f0c..61484a5f1209 100644
--- a/arch/s390/include/asm/asm-extable.h
+++ b/arch/s390/include/asm/asm-extable.h
@@ -5,17 +5,22 @@
#include <linux/stringify.h>
#include <asm/asm-const.h>
-#define __EX_TABLE(_section, _fault, _target) \
+#define EX_TYPE_NONE 0
+#define EX_TYPE_FIXUP 1
+#define EX_TYPE_BPF 2
+
+#define __EX_TABLE(_section, _fault, _target, _type) \
stringify_in_c(.section _section,"a";) \
- stringify_in_c(.align 8;) \
+ stringify_in_c(.align 4;) \
stringify_in_c(.long (_fault) - .;) \
stringify_in_c(.long (_target) - .;) \
- stringify_in_c(.quad 0;) \
+ stringify_in_c(.short (_type);) \
+ stringify_in_c(.short 0;) \
stringify_in_c(.previous)
#define EX_TABLE(_fault, _target) \
- __EX_TABLE(__ex_table, _fault, _target)
+ __EX_TABLE(__ex_table, _fault, _target, EX_TYPE_FIXUP)
#define EX_TABLE_AMODE31(_fault, _target) \
- __EX_TABLE(.amode31.ex_table, _fault, _target)
+ __EX_TABLE(.amode31.ex_table, _fault, _target, EX_TYPE_FIXUP)
#endif /* __ASM_EXTABLE_H */