diff options
Diffstat (limited to 'include/linux/kasan.h')
-rw-r--r-- | include/linux/kasan.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/include/linux/kasan.h b/include/linux/kasan.h index 611927f5870d..ac4b3c46a84d 100644 --- a/include/linux/kasan.h +++ b/include/linux/kasan.h | |||
@@ -59,14 +59,13 @@ void kasan_poison_object_data(struct kmem_cache *cache, void *object); | |||
59 | 59 | ||
60 | void kasan_kmalloc_large(const void *ptr, size_t size, gfp_t flags); | 60 | void kasan_kmalloc_large(const void *ptr, size_t size, gfp_t flags); |
61 | void kasan_kfree_large(const void *ptr); | 61 | void kasan_kfree_large(const void *ptr); |
62 | void kasan_kfree(void *ptr); | 62 | void kasan_poison_kfree(void *ptr); |
63 | void kasan_kmalloc(struct kmem_cache *s, const void *object, size_t size, | 63 | void kasan_kmalloc(struct kmem_cache *s, const void *object, size_t size, |
64 | gfp_t flags); | 64 | gfp_t flags); |
65 | void kasan_krealloc(const void *object, size_t new_size, gfp_t flags); | 65 | void kasan_krealloc(const void *object, size_t new_size, gfp_t flags); |
66 | 66 | ||
67 | void kasan_slab_alloc(struct kmem_cache *s, void *object, gfp_t flags); | 67 | void kasan_slab_alloc(struct kmem_cache *s, void *object, gfp_t flags); |
68 | bool kasan_slab_free(struct kmem_cache *s, void *object); | 68 | bool kasan_slab_free(struct kmem_cache *s, void *object); |
69 | void kasan_poison_slab_free(struct kmem_cache *s, void *object); | ||
70 | 69 | ||
71 | struct kasan_cache { | 70 | struct kasan_cache { |
72 | int alloc_meta_offset; | 71 | int alloc_meta_offset; |
@@ -76,6 +75,9 @@ struct kasan_cache { | |||
76 | int kasan_module_alloc(void *addr, size_t size); | 75 | int kasan_module_alloc(void *addr, size_t size); |
77 | void kasan_free_shadow(const struct vm_struct *vm); | 76 | void kasan_free_shadow(const struct vm_struct *vm); |
78 | 77 | ||
78 | size_t ksize(const void *); | ||
79 | static inline void kasan_unpoison_slab(const void *ptr) { ksize(ptr); } | ||
80 | |||
79 | #else /* CONFIG_KASAN */ | 81 | #else /* CONFIG_KASAN */ |
80 | 82 | ||
81 | static inline void kasan_unpoison_shadow(const void *address, size_t size) {} | 83 | static inline void kasan_unpoison_shadow(const void *address, size_t size) {} |
@@ -102,7 +104,7 @@ static inline void kasan_poison_object_data(struct kmem_cache *cache, | |||
102 | 104 | ||
103 | static inline void kasan_kmalloc_large(void *ptr, size_t size, gfp_t flags) {} | 105 | static inline void kasan_kmalloc_large(void *ptr, size_t size, gfp_t flags) {} |
104 | static inline void kasan_kfree_large(const void *ptr) {} | 106 | static inline void kasan_kfree_large(const void *ptr) {} |
105 | static inline void kasan_kfree(void *ptr) {} | 107 | static inline void kasan_poison_kfree(void *ptr) {} |
106 | static inline void kasan_kmalloc(struct kmem_cache *s, const void *object, | 108 | static inline void kasan_kmalloc(struct kmem_cache *s, const void *object, |
107 | size_t size, gfp_t flags) {} | 109 | size_t size, gfp_t flags) {} |
108 | static inline void kasan_krealloc(const void *object, size_t new_size, | 110 | static inline void kasan_krealloc(const void *object, size_t new_size, |
@@ -114,11 +116,12 @@ static inline bool kasan_slab_free(struct kmem_cache *s, void *object) | |||
114 | { | 116 | { |
115 | return false; | 117 | return false; |
116 | } | 118 | } |
117 | static inline void kasan_poison_slab_free(struct kmem_cache *s, void *object) {} | ||
118 | 119 | ||
119 | static inline int kasan_module_alloc(void *addr, size_t size) { return 0; } | 120 | static inline int kasan_module_alloc(void *addr, size_t size) { return 0; } |
120 | static inline void kasan_free_shadow(const struct vm_struct *vm) {} | 121 | static inline void kasan_free_shadow(const struct vm_struct *vm) {} |
121 | 122 | ||
123 | static inline void kasan_unpoison_slab(const void *ptr) { } | ||
124 | |||
122 | #endif /* CONFIG_KASAN */ | 125 | #endif /* CONFIG_KASAN */ |
123 | 126 | ||
124 | #endif /* LINUX_KASAN_H */ | 127 | #endif /* LINUX_KASAN_H */ |