Lines Matching +full:page +full:- +full:size
1 /* SPDX-License-Identifier: GPL-2.0 */
6 #include <linux/kasan-enabled.h>
7 #include <linux/kasan-tags.h>
13 struct page;
66 int kasan_add_zero_shadow(void *start, unsigned long size);
67 void kasan_remove_zero_shadow(void *start, unsigned long size);
77 static inline int kasan_add_zero_shadow(void *start, unsigned long size) in kasan_add_zero_shadow() argument
82 unsigned long size) in kasan_remove_zero_shadow() argument
102 void __kasan_unpoison_range(const void *addr, size_t size);
103 static __always_inline void kasan_unpoison_range(const void *addr, size_t size) in kasan_unpoison_range() argument
106 __kasan_unpoison_range(addr, size); in kasan_unpoison_range()
109 void __kasan_poison_pages(struct page *page, unsigned int order, bool init);
110 static __always_inline void kasan_poison_pages(struct page *page, in kasan_poison_pages() argument
114 __kasan_poison_pages(page, order, init); in kasan_poison_pages()
117 bool __kasan_unpoison_pages(struct page *page, unsigned int order, bool init);
118 static __always_inline bool kasan_unpoison_pages(struct page *page, in kasan_unpoison_pages() argument
122 return __kasan_unpoison_pages(page, order, init); in kasan_unpoison_pages()
135 * kasan_unpoison_new_object - Temporarily unpoison a new slab object.
153 * kasan_unpoison_new_object - Repoison a new slab object.
206 size_t size, gfp_t flags);
208 const void *object, size_t size, gfp_t flags) in kasan_kmalloc() argument
211 return __kasan_kmalloc(s, object, size, flags); in kasan_kmalloc()
216 size_t size, gfp_t flags);
218 size_t size, gfp_t flags) in kasan_kmalloc_large() argument
221 return __kasan_kmalloc_large(ptr, size, flags); in kasan_kmalloc_large()
235 bool __kasan_mempool_poison_pages(struct page *page, unsigned int order,
238 * kasan_mempool_poison_pages - Check and poison a mempool page allocation.
239 * @page: Pointer to the page allocation.
242 * This function is intended for kernel subsystems that cache page allocations
246 * page allocations.
253 static __always_inline bool kasan_mempool_poison_pages(struct page *page, in kasan_mempool_poison_pages() argument
257 return __kasan_mempool_poison_pages(page, order, _RET_IP_); in kasan_mempool_poison_pages()
261 void __kasan_mempool_unpoison_pages(struct page *page, unsigned int order,
264 * kasan_mempool_unpoison_pages - Unpoison a mempool page allocation.
265 * @page: Pointer to the page allocation.
268 * This function is intended for kernel subsystems that cache page allocations
271 * This function unpoisons a page allocation that was previously poisoned by
273 * the tag-based modes, this function assigns a new tag to the allocation.
275 static __always_inline void kasan_mempool_unpoison_pages(struct page *page, in kasan_mempool_unpoison_pages() argument
279 __kasan_mempool_unpoison_pages(page, order, _RET_IP_); in kasan_mempool_unpoison_pages()
284 * kasan_mempool_poison_object - Check and poison a mempool slab allocation.
295 * This function also performs checks to detect double-free and invalid-free
304 * size > KMALLOC_MAX_SIZE).
315 void __kasan_mempool_unpoison_object(void *ptr, size_t size, unsigned long ip);
317 * kasan_mempool_unpoison_object - Unpoison a mempool slab allocation.
319 * @size: Size to be unpoisoned.
327 * initializing the allocation's memory. For the tag-based modes, this function
333 * size > KMALLOC_MAX_SIZE).
336 size_t size) in kasan_mempool_unpoison_object() argument
339 __kasan_mempool_unpoison_object(ptr, size, _RET_IP_); in kasan_mempool_unpoison_object()
344 * the hardware tag-based mode that doesn't rely on compiler instrumentation.
356 static inline void kasan_unpoison_range(const void *address, size_t size) {} in kasan_unpoison_range() argument
357 static inline void kasan_poison_pages(struct page *page, unsigned int order, in kasan_poison_pages() argument
359 static inline bool kasan_unpoison_pages(struct page *page, unsigned int order, in kasan_unpoison_pages() argument
385 size_t size, gfp_t flags) in kasan_kmalloc() argument
389 static inline void *kasan_kmalloc_large(const void *ptr, size_t size, gfp_t flags) in kasan_kmalloc_large() argument
398 static inline bool kasan_mempool_poison_pages(struct page *page, unsigned int order) in kasan_mempool_poison_pages() argument
402 static inline void kasan_mempool_unpoison_pages(struct page *page, unsigned int order) {} in kasan_mempool_unpoison_pages() argument
407 static inline void kasan_mempool_unpoison_object(void *ptr, size_t size) {} in kasan_mempool_unpoison_object() argument
433 void kasan_cache_create(struct kmem_cache *cache, unsigned int *size,
443 /* Tag-based KASAN modes do not use per-object metadata. */
454 /* And no cache-related metadata initialization is required. */
456 unsigned int *size, in kasan_cache_create() argument
474 * kasan_report - print a report about a bad memory access detected by KASAN
476 * @size: size of the bad access
480 bool kasan_report(const void *addr, size_t size,
516 void kasan_populate_early_vm_area_shadow(void *start, unsigned long size);
517 int kasan_populate_vmalloc(unsigned long addr, unsigned long size);
525 unsigned long size) in kasan_populate_early_vm_area_shadow() argument
528 unsigned long size) in kasan_populate_vmalloc() argument
539 void *__kasan_unpoison_vmalloc(const void *start, unsigned long size,
542 unsigned long size, in kasan_unpoison_vmalloc() argument
546 return __kasan_unpoison_vmalloc(start, size, flags); in kasan_unpoison_vmalloc()
550 void __kasan_poison_vmalloc(const void *start, unsigned long size);
552 unsigned long size) in kasan_poison_vmalloc() argument
555 __kasan_poison_vmalloc(start, size); in kasan_poison_vmalloc()
561 unsigned long size) { } in kasan_populate_early_vm_area_shadow() argument
563 unsigned long size) in kasan_populate_vmalloc() argument
573 unsigned long size, in kasan_unpoison_vmalloc() argument
578 static inline void kasan_poison_vmalloc(const void *start, unsigned long size) in kasan_poison_vmalloc() argument
591 int kasan_alloc_module_shadow(void *addr, size_t size, gfp_t gfp_mask);
596 static inline int kasan_alloc_module_shadow(void *addr, size_t size, gfp_t gfp_mask) { return 0; } in kasan_alloc_module_shadow() argument