hc
2024-05-10 9999e48639b3cecb08ffb37358bcba3b48161b29
kernel/arch/s390/include/asm/bug.h
....@@ -2,23 +2,22 @@
22 #ifndef _ASM_S390_BUG_H
33 #define _ASM_S390_BUG_H
44
5
-#include <linux/kernel.h>
5
+#include <linux/compiler.h>
66
77 #ifdef CONFIG_BUG
88
99 #ifdef CONFIG_DEBUG_BUGVERBOSE
1010
1111 #define __EMIT_BUG(x) do { \
12
- asm volatile( \
13
- "0: j 0b+2\n" \
14
- "1:\n" \
12
+ asm_inline volatile( \
13
+ "0: mc 0,0\n" \
1514 ".section .rodata.str,\"aMS\",@progbits,1\n" \
16
- "2: .asciz \""__FILE__"\"\n" \
15
+ "1: .asciz \""__FILE__"\"\n" \
1716 ".previous\n" \
18
- ".section __bug_table,\"aw\"\n" \
19
- "3: .long 1b-3b,2b-3b\n" \
17
+ ".section __bug_table,\"awM\",@progbits,%2\n" \
18
+ "2: .long 0b-2b,1b-2b\n" \
2019 " .short %0,%1\n" \
21
- " .org 3b+%2\n" \
20
+ " .org 2b+%2\n" \
2221 ".previous\n" \
2322 : : "i" (__LINE__), \
2423 "i" (x), \
....@@ -27,17 +26,16 @@
2726
2827 #else /* CONFIG_DEBUG_BUGVERBOSE */
2928
30
-#define __EMIT_BUG(x) do { \
31
- asm volatile( \
32
- "0: j 0b+2\n" \
33
- "1:\n" \
34
- ".section __bug_table,\"aw\"\n" \
35
- "2: .long 1b-2b\n" \
36
- " .short %0\n" \
37
- " .org 2b+%1\n" \
38
- ".previous\n" \
39
- : : "i" (x), \
40
- "i" (sizeof(struct bug_entry))); \
29
+#define __EMIT_BUG(x) do { \
30
+ asm_inline volatile( \
31
+ "0: mc 0,0\n" \
32
+ ".section __bug_table,\"awM\",@progbits,%1\n" \
33
+ "1: .long 0b-1b\n" \
34
+ " .short %0\n" \
35
+ " .org 1b+%1\n" \
36
+ ".previous\n" \
37
+ : : "i" (x), \
38
+ "i" (sizeof(struct bug_entry))); \
4139 } while (0)
4240
4341 #endif /* CONFIG_DEBUG_BUGVERBOSE */