21
21
#endif
22
22
23
23
#ifdef CONFIG_GENERIC_BUG
24
-
25
- #define __BUG_ENTRY (flags ) \
24
+ #define __BUG_ENTRY_START \
26
25
.pushsection __bug_table,"aw"; \
27
26
.align 2; \
28
27
14470: .long 14471f - .; \
29
- _BUGVERBOSE_LOCATION(__FILE__, __LINE__) \
30
- .short flags; \
28
+
29
+ #define __BUG_ENTRY_END \
31
30
.align 2; \
32
31
.popsection; \
33
32
14471:
33
+
34
+ #define __BUG_ENTRY (flags ) \
35
+ __BUG_ENTRY_START \
36
+ _BUGVERBOSE_LOCATION(__FILE__, __LINE__) \
37
+ .short flags; \
38
+ __BUG_ENTRY_END
34
39
#else
35
40
#define __BUG_ENTRY (flags )
36
41
#endif
@@ -41,4 +46,24 @@ _BUGVERBOSE_LOCATION(__FILE__, __LINE__) \
41
46
42
47
#define ASM_BUG () ASM_BUG_FLAGS(0)
43
48
49
+ #ifdef CONFIG_DEBUG_BUGVERBOSE
50
+ #define __BUG_LOCATION_STRING (file , line ) \
51
+ ".long " file "- .;" \
52
+ ".short " line ";"
53
+ #else
54
+ #define __BUG_LOCATION_STRING (file , line )
55
+ #endif
56
+
57
+ #define __BUG_ENTRY_STRING (file , line , flags ) \
58
+ __stringify(__BUG_ENTRY_START) \
59
+ __BUG_LOCATION_STRING(file, line) \
60
+ ".short " flags ";" \
61
+ __stringify(__BUG_ENTRY_END)
62
+
63
+ #define ARCH_WARN_ASM (file , line , flags , size ) \
64
+ __BUG_ENTRY_STRING(file, line, flags) \
65
+ __stringify(brk BUG_BRK_IMM)
66
+
67
+ #define ARCH_WARN_REACHABLE
68
+
44
69
#endif /* __ASM_ASM_BUG_H */
0 commit comments