diff options
Diffstat (limited to 'mm/kasan/kasan.h')
-rw-r--r-- | mm/kasan/kasan.h | 11 |
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 | |||
67 | struct kasan_track { | 70 | struct 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 | ||
73 | struct kasan_alloc_meta { | 75 | struct 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 | ||
79 | struct kasan_free_meta { | 82 | struct kasan_free_meta { |