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