File tree Expand file tree Collapse file tree
arch/loongarch/include/asm Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1010#include <asm/io.h>
1111#include <asm/pgtable.h>
1212
13- #define __HAVE_ARCH_SHADOW_MAP
14-
1513#define KASAN_SHADOW_SCALE_SHIFT 3
1614#define KASAN_SHADOW_OFFSET _AC(CONFIG_KASAN_SHADOW_OFFSET, UL)
1715
@@ -68,6 +66,7 @@ static __always_inline bool kasan_arch_is_ready(void)
6866 return !kasan_early_stage ;
6967}
7068
69+ #define kasan_mem_to_shadow kasan_mem_to_shadow
7170static inline void * kasan_mem_to_shadow (const void * addr )
7271{
7372 if (!kasan_arch_is_ready ()) {
@@ -97,6 +96,7 @@ static inline void *kasan_mem_to_shadow(const void *addr)
9796 }
9897}
9998
99+ #define kasan_shadow_to_mem kasan_shadow_to_mem
100100static inline const void * kasan_shadow_to_mem (const void * shadow_addr )
101101{
102102 unsigned long addr = (unsigned long )shadow_addr ;
@@ -119,6 +119,12 @@ static inline const void *kasan_shadow_to_mem(const void *shadow_addr)
119119 }
120120}
121121
122+ #define addr_has_metadata addr_has_metadata
123+ static __always_inline bool addr_has_metadata (const void * addr )
124+ {
125+ return (kasan_mem_to_shadow ((void * )addr ) != NULL );
126+ }
127+
122128void kasan_init (void );
123129asmlinkage void kasan_early_init (void );
124130
Original file line number Diff line number Diff line change @@ -54,7 +54,7 @@ extern p4d_t kasan_early_shadow_p4d[MAX_PTRS_PER_P4D];
5454int kasan_populate_early_shadow (const void * shadow_start ,
5555 const void * shadow_end );
5656
57- #ifndef __HAVE_ARCH_SHADOW_MAP
57+ #ifndef kasan_mem_to_shadow
5858static inline void * kasan_mem_to_shadow (const void * addr )
5959{
6060 return (void * )((unsigned long )addr >> KASAN_SHADOW_SCALE_SHIFT )
Original file line number Diff line number Diff line change @@ -291,23 +291,21 @@ struct kasan_stack_ring {
291291
292292#if defined(CONFIG_KASAN_GENERIC ) || defined(CONFIG_KASAN_SW_TAGS )
293293
294- #ifndef __HAVE_ARCH_SHADOW_MAP
294+ #ifndef kasan_shadow_to_mem
295295static inline const void * kasan_shadow_to_mem (const void * shadow_addr )
296296{
297297 return (void * )(((unsigned long )shadow_addr - KASAN_SHADOW_OFFSET )
298298 << KASAN_SHADOW_SCALE_SHIFT );
299299}
300300#endif
301301
302+ #ifndef addr_has_metadata
302303static __always_inline bool addr_has_metadata (const void * addr )
303304{
304- #ifdef __HAVE_ARCH_SHADOW_MAP
305- return (kasan_mem_to_shadow ((void * )addr ) != NULL );
306- #else
307305 return (kasan_reset_tag (addr ) >=
308306 kasan_shadow_to_mem ((void * )KASAN_SHADOW_START ));
309- #endif
310307}
308+ #endif
311309
312310/**
313311 * kasan_check_range - Check memory region, and report if invalid access.
You can’t perform that action at this time.
0 commit comments