xref: /openbmc/linux/arch/arm/include/asm/kasan.h (revision cdd38c5f1ce4398ec58fec95904b75824daab7b5)
1*5615f69bSLinus Walleij /* SPDX-License-Identifier: GPL-2.0 */
2*5615f69bSLinus Walleij /*
3*5615f69bSLinus Walleij  * arch/arm/include/asm/kasan.h
4*5615f69bSLinus Walleij  *
5*5615f69bSLinus Walleij  * Copyright (c) 2015 Samsung Electronics Co., Ltd.
6*5615f69bSLinus Walleij  * Author: Andrey Ryabinin <ryabinin.a.a@gmail.com>
7*5615f69bSLinus Walleij  *
8*5615f69bSLinus Walleij  */
9*5615f69bSLinus Walleij 
10*5615f69bSLinus Walleij #ifndef __ASM_KASAN_H
11*5615f69bSLinus Walleij #define __ASM_KASAN_H
12*5615f69bSLinus Walleij 
13*5615f69bSLinus Walleij #ifdef CONFIG_KASAN
14*5615f69bSLinus Walleij 
15*5615f69bSLinus Walleij #include <asm/kasan_def.h>
16*5615f69bSLinus Walleij 
17*5615f69bSLinus Walleij #define KASAN_SHADOW_SCALE_SHIFT 3
18*5615f69bSLinus Walleij 
19*5615f69bSLinus Walleij /*
20*5615f69bSLinus Walleij  * The compiler uses a shadow offset assuming that addresses start
21*5615f69bSLinus Walleij  * from 0. Kernel addresses don't start from 0, so shadow
22*5615f69bSLinus Walleij  * for kernel really starts from 'compiler's shadow offset' +
23*5615f69bSLinus Walleij  * ('kernel address space start' >> KASAN_SHADOW_SCALE_SHIFT)
24*5615f69bSLinus Walleij  */
25*5615f69bSLinus Walleij 
26*5615f69bSLinus Walleij asmlinkage void kasan_early_init(void);
27*5615f69bSLinus Walleij extern void kasan_init(void);
28*5615f69bSLinus Walleij 
29*5615f69bSLinus Walleij #else
kasan_init(void)30*5615f69bSLinus Walleij static inline void kasan_init(void) { }
31*5615f69bSLinus Walleij #endif
32*5615f69bSLinus Walleij 
33*5615f69bSLinus Walleij #endif
34