aboutsummaryrefslogtreecommitdiffstats
path: root/mm/kasan/kasan.h
diff options
context:
space:
mode:
Diffstat (limited to 'mm/kasan/kasan.h')
-rw-r--r--mm/kasan/kasan.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/mm/kasan/kasan.h b/mm/kasan/kasan.h
index 7b9e4ab9b66b..30a2f0ba0e09 100644
--- a/mm/kasan/kasan.h
+++ b/mm/kasan/kasan.h
@@ -2,6 +2,7 @@
2#define __MM_KASAN_KASAN_H 2#define __MM_KASAN_KASAN_H
3 3
4#include <linux/kasan.h> 4#include <linux/kasan.h>
5#include <linux/stackdepot.h>
5 6
6#define KASAN_SHADOW_SCALE_SIZE (1UL << KASAN_SHADOW_SCALE_SHIFT) 7#define KASAN_SHADOW_SCALE_SIZE (1UL << KASAN_SHADOW_SCALE_SHIFT)
7#define KASAN_SHADOW_MASK (KASAN_SHADOW_SCALE_SIZE - 1) 8#define KASAN_SHADOW_MASK (KASAN_SHADOW_SCALE_SIZE - 1)
@@ -64,16 +65,18 @@ enum kasan_state {
64 KASAN_STATE_FREE 65 KASAN_STATE_FREE
65}; 66};
66 67
68#define KASAN_STACK_DEPTH 64
69
67struct kasan_track { 70struct kasan_track {
68 u64 cpu : 6; /* for NR_CPUS = 64 */ 71 u32 pid;
69 u64 pid : 16; /* 65536 processes */ 72 depot_stack_handle_t stack;
70 u64 when : 42; /* ~140 years */
71}; 73};
72 74
73struct kasan_alloc_meta { 75struct kasan_alloc_meta {
76 struct kasan_track track;
74 u32 state : 2; /* enum kasan_state */ 77 u32 state : 2; /* enum kasan_state */
75 u32 alloc_size : 30; 78 u32 alloc_size : 30;
76 struct kasan_track track; 79 u32 reserved;
77}; 80};
78 81
79struct kasan_free_meta { 82struct kasan_free_meta {