File tree Expand file tree Collapse file tree 3 files changed +12
-8
lines changed
arch/loongarch/include/asm Expand file tree Collapse file tree 3 files changed +12
-8
lines changed Original file line number Diff line number Diff line change 10
10
#include <asm/io.h>
11
11
#include <asm/pgtable.h>
12
12
13
- #define __HAVE_ARCH_SHADOW_MAP
14
-
15
13
#define KASAN_SHADOW_SCALE_SHIFT 3
16
14
#define KASAN_SHADOW_OFFSET _AC(CONFIG_KASAN_SHADOW_OFFSET, UL)
17
15
@@ -68,6 +66,7 @@ static __always_inline bool kasan_arch_is_ready(void)
68
66
return !kasan_early_stage ;
69
67
}
70
68
69
+ #define kasan_mem_to_shadow kasan_mem_to_shadow
71
70
static inline void * kasan_mem_to_shadow (const void * addr )
72
71
{
73
72
if (!kasan_arch_is_ready ()) {
@@ -97,6 +96,7 @@ static inline void *kasan_mem_to_shadow(const void *addr)
97
96
}
98
97
}
99
98
99
+ #define kasan_shadow_to_mem kasan_shadow_to_mem
100
100
static inline const void * kasan_shadow_to_mem (const void * shadow_addr )
101
101
{
102
102
unsigned long addr = (unsigned long )shadow_addr ;
@@ -119,6 +119,12 @@ static inline const void *kasan_shadow_to_mem(const void *shadow_addr)
119
119
}
120
120
}
121
121
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
+
122
128
void kasan_init (void );
123
129
asmlinkage void kasan_early_init (void );
124
130
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];
54
54
int kasan_populate_early_shadow (const void * shadow_start ,
55
55
const void * shadow_end );
56
56
57
- #ifndef __HAVE_ARCH_SHADOW_MAP
57
+ #ifndef kasan_mem_to_shadow
58
58
static inline void * kasan_mem_to_shadow (const void * addr )
59
59
{
60
60
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 {
291
291
292
292
#if defined(CONFIG_KASAN_GENERIC ) || defined(CONFIG_KASAN_SW_TAGS )
293
293
294
- #ifndef __HAVE_ARCH_SHADOW_MAP
294
+ #ifndef kasan_shadow_to_mem
295
295
static inline const void * kasan_shadow_to_mem (const void * shadow_addr )
296
296
{
297
297
return (void * )(((unsigned long )shadow_addr - KASAN_SHADOW_OFFSET )
298
298
<< KASAN_SHADOW_SCALE_SHIFT );
299
299
}
300
300
#endif
301
301
302
+ #ifndef addr_has_metadata
302
303
static __always_inline bool addr_has_metadata (const void * addr )
303
304
{
304
- #ifdef __HAVE_ARCH_SHADOW_MAP
305
- return (kasan_mem_to_shadow ((void * )addr ) != NULL );
306
- #else
307
305
return (kasan_reset_tag (addr ) >=
308
306
kasan_shadow_to_mem ((void * )KASAN_SHADOW_START ));
309
- #endif
310
307
}
308
+ #endif
311
309
312
310
/**
313
311
* kasan_check_range - Check memory region, and report if invalid access.
You can’t perform that action at this time.
0 commit comments