Merge tag 'imx-drm-next-2020-10-30' of git://git.pengutronix.de/git/pza/linux into...
[linux-2.6-microblaze.git] / arch / arm64 / include / asm / asm-bug.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 #ifndef __ASM_ASM_BUG_H
3 /*
4  * Copyright (C) 2017  ARM Limited
5  */
6 #define __ASM_ASM_BUG_H
7
8 #include <asm/brk-imm.h>
9
10 #ifdef CONFIG_DEBUG_BUGVERBOSE
11 #define _BUGVERBOSE_LOCATION(file, line) __BUGVERBOSE_LOCATION(file, line)
12 #define __BUGVERBOSE_LOCATION(file, line)                       \
13                 .pushsection .rodata.str,"aMS",@progbits,1;     \
14         14472:  .string file;                                   \
15                 .popsection;                                    \
16                                                                 \
17                 .long 14472b - 14470b;                          \
18                 .short line;
19 #else
20 #define _BUGVERBOSE_LOCATION(file, line)
21 #endif
22
23 #ifdef CONFIG_GENERIC_BUG
24
25 #define __BUG_ENTRY(flags)                              \
26                 .pushsection __bug_table,"aw";          \
27                 .align 2;                               \
28         14470:  .long 14471f - 14470b;                  \
29 _BUGVERBOSE_LOCATION(__FILE__, __LINE__)                \
30                 .short flags;                           \
31                 .popsection;                            \
32         14471:
33 #else
34 #define __BUG_ENTRY(flags)
35 #endif
36
37 #define ASM_BUG_FLAGS(flags)                            \
38         __BUG_ENTRY(flags)                              \
39         brk     BUG_BRK_IMM
40
41 #define ASM_BUG()       ASM_BUG_FLAGS(0)
42
43 #endif /* __ASM_ASM_BUG_H */