at v5.9 44 lines 1.2 kB view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _LINUX_KASAN_CHECKS_H 3#define _LINUX_KASAN_CHECKS_H 4 5#include <linux/types.h> 6 7/* 8 * __kasan_check_*: Always available when KASAN is enabled. This may be used 9 * even in compilation units that selectively disable KASAN, but must use KASAN 10 * to validate access to an address. Never use these in header files! 11 */ 12#ifdef CONFIG_KASAN 13bool __kasan_check_read(const volatile void *p, unsigned int size); 14bool __kasan_check_write(const volatile void *p, unsigned int size); 15#else 16static inline bool __kasan_check_read(const volatile void *p, unsigned int size) 17{ 18 return true; 19} 20static inline bool __kasan_check_write(const volatile void *p, unsigned int size) 21{ 22 return true; 23} 24#endif 25 26/* 27 * kasan_check_*: Only available when the particular compilation unit has KASAN 28 * instrumentation enabled. May be used in header files. 29 */ 30#ifdef __SANITIZE_ADDRESS__ 31#define kasan_check_read __kasan_check_read 32#define kasan_check_write __kasan_check_write 33#else 34static inline bool kasan_check_read(const volatile void *p, unsigned int size) 35{ 36 return true; 37} 38static inline bool kasan_check_write(const volatile void *p, unsigned int size) 39{ 40 return true; 41} 42#endif 43 44#endif