Merge tag 'ecryptfs-5.3-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / arch / arm64 / include / asm / exception.h
1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Based on arch/arm/include/asm/exception.h
4  *
5  * Copyright (C) 2012 ARM Ltd.
6  */
7 #ifndef __ASM_EXCEPTION_H
8 #define __ASM_EXCEPTION_H
9
10 #include <asm/esr.h>
11
12 #include <linux/interrupt.h>
13
14 #define __exception     __attribute__((section(".exception.text")))
15 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
16 #define __exception_irq_entry   __irq_entry
17 #else
18 #define __exception_irq_entry   __exception
19 #endif
20
21 static inline u32 disr_to_esr(u64 disr)
22 {
23         unsigned int esr = ESR_ELx_EC_SERROR << ESR_ELx_EC_SHIFT;
24
25         if ((disr & DISR_EL1_IDS) == 0)
26                 esr |= (disr & DISR_EL1_ESR_MASK);
27         else
28                 esr |= (disr & ESR_ELx_ISS_MASK);
29
30         return esr;
31 }
32
33 #endif  /* __ASM_EXCEPTION_H */