xref: /linux/arch/arm64/include/asm/bug.h (revision caab277b)
1*caab277bSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-only */
29fb7410fSDave P Martin /*
39fb7410fSDave P Martin  * Copyright (C) 2015  ARM Limited
49fb7410fSDave P Martin  * Author: Dave Martin <Dave.Martin@arm.com>
59fb7410fSDave P Martin  */
69fb7410fSDave P Martin 
79fb7410fSDave P Martin #ifndef _ARCH_ARM64_ASM_BUG_H
89fb7410fSDave P Martin #define _ARCH_ARM64_ASM_BUG_H
99fb7410fSDave P Martin 
10db44e9c5SMark Rutland #include <linux/stringify.h>
119fb7410fSDave P Martin 
12db44e9c5SMark Rutland #include <asm/asm-bug.h>
13f13d52cbSArnd Bergmann 
14f13d52cbSArnd Bergmann #define __BUG_FLAGS(flags)				\
15db44e9c5SMark Rutland 	asm volatile (__stringify(ASM_BUG_FLAGS(flags)));
169fb7410fSDave P Martin 
179fb7410fSDave P Martin #define BUG() do {					\
18f13d52cbSArnd Bergmann 	__BUG_FLAGS(0);					\
199fb7410fSDave P Martin 	unreachable();					\
209fb7410fSDave P Martin } while (0)
219fb7410fSDave P Martin 
22ab182e67SLinus Torvalds #define __WARN_FLAGS(flags) __BUG_FLAGS(BUGFLAG_WARNING|(flags))
239fb7410fSDave P Martin 
24f13d52cbSArnd Bergmann #define HAVE_ARCH_BUG
259fb7410fSDave P Martin 
269fb7410fSDave P Martin #include <asm-generic/bug.h>
279fb7410fSDave P Martin 
289fb7410fSDave P Martin #endif /* ! _ARCH_ARM64_ASM_BUG_H */
29