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.h15
1 files changed, 4 insertions, 11 deletions
diff --git a/mm/kasan/kasan.h b/mm/kasan/kasan.h
index 31972cdba433..e5c2181fee6f 100644
--- a/mm/kasan/kasan.h
+++ b/mm/kasan/kasan.h
@@ -59,13 +59,6 @@ struct kasan_global {
59 * Structures to keep alloc and free tracks * 59 * Structures to keep alloc and free tracks *
60 */ 60 */
61 61
62enum kasan_state {
63 KASAN_STATE_INIT,
64 KASAN_STATE_ALLOC,
65 KASAN_STATE_QUARANTINE,
66 KASAN_STATE_FREE
67};
68
69#define KASAN_STACK_DEPTH 64 62#define KASAN_STACK_DEPTH 64
70 63
71struct kasan_track { 64struct kasan_track {
@@ -74,9 +67,8 @@ struct kasan_track {
74}; 67};
75 68
76struct kasan_alloc_meta { 69struct kasan_alloc_meta {
77 struct kasan_track track; 70 struct kasan_track alloc_track;
78 u32 state : 2; /* enum kasan_state */ 71 struct kasan_track free_track;
79 u32 alloc_size : 30;
80}; 72};
81 73
82struct qlist_node { 74struct qlist_node {
@@ -87,7 +79,6 @@ struct kasan_free_meta {
87 * Otherwise it might be used for the allocator freelist. 79 * Otherwise it might be used for the allocator freelist.
88 */ 80 */
89 struct qlist_node quarantine_link; 81 struct qlist_node quarantine_link;
90 struct kasan_track track;
91}; 82};
92 83
93struct kasan_alloc_meta *get_alloc_info(struct kmem_cache *cache, 84struct kasan_alloc_meta *get_alloc_info(struct kmem_cache *cache,
@@ -108,6 +99,8 @@ static inline bool kasan_report_enabled(void)
108 99
109void kasan_report(unsigned long addr, size_t size, 100void kasan_report(unsigned long addr, size_t size,
110 bool is_write, unsigned long ip); 101 bool is_write, unsigned long ip);
102void kasan_report_double_free(struct kmem_cache *cache, void *object,
103 s8 shadow);
111 104
112#if defined(CONFIG_SLAB) || defined(CONFIG_SLUB) 105#if defined(CONFIG_SLAB) || defined(CONFIG_SLUB)
113void quarantine_put(struct kasan_free_meta *info, struct kmem_cache *cache); 106void quarantine_put(struct kasan_free_meta *info, struct kmem_cache *cache);