1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Based on arch/arm/include/asm/exception.h
5 * Copyright (C) 2012 ARM Ltd.
7 #ifndef __ASM_EXCEPTION_H
8 #define __ASM_EXCEPTION_H
12 #include <linux/interrupt.h>
14 #define __exception __attribute__((section(".exception.text")))
15 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
16 #define __exception_irq_entry __irq_entry
18 #define __exception_irq_entry __exception
21 static inline u32 disr_to_esr(u64 disr)
23 unsigned int esr = ESR_ELx_EC_SERROR << ESR_ELx_EC_SHIFT;
25 if ((disr & DISR_EL1_IDS) == 0)
26 esr |= (disr & DISR_EL1_ESR_MASK);
28 esr |= (disr & ESR_ELx_ISS_MASK);
33 asmlinkage void enter_from_user_mode(void);
35 #endif /* __ASM_EXCEPTION_H */