]> git.ipfire.org Git - thirdparty/linux.git/blame - arch/arm64/include/asm/exception.h
treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 234
[thirdparty/linux.git] / arch / arm64 / include / asm / exception.h
CommitLineData
caab277b 1/* SPDX-License-Identifier: GPL-2.0-only */
10b663ae
CM
2/*
3 * Based on arch/arm/include/asm/exception.h
4 *
5 * Copyright (C) 2012 ARM Ltd.
10b663ae
CM
6 */
7#ifndef __ASM_EXCEPTION_H
8#define __ASM_EXCEPTION_H
9
68ddbf09
JM
10#include <asm/esr.h>
11
be7635e7 12#include <linux/interrupt.h>
9a5ad7d0 13
10b663ae 14#define __exception __attribute__((section(".exception.text")))
9a5ad7d0
JL
15#ifdef CONFIG_FUNCTION_GRAPH_TRACER
16#define __exception_irq_entry __irq_entry
17#else
e851b58c 18#define __exception_irq_entry __exception
9a5ad7d0 19#endif
10b663ae 20
68ddbf09
JM
21static 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
10b663ae 33#endif /* __ASM_EXCEPTION_H */