kasan-implement-stack-ring-for-tag-based-modes.patch removed from -mm tree
The quilt patch titled
Subject: kasan: implement stack ring for tag-based modes
has been removed from the -mm tree. Its filename was
kasan-implement-stack-ring-for-tag-based-modes.patch
This patch was dropped because it was merged into the mm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Andrey Konovalov <[email protected]>
Subject: kasan: implement stack ring for tag-based modes
Date: Mon, 5 Sep 2022 23:05:45 +0200
Implement storing stack depot handles for alloc/free stack traces for slab objects for the tag-based KASAN modes in a ring buffer.
This ring buffer is referred to as the stack ring.
On each alloc/free of a slab object, the tagged address of the object and the current stack trace are recorded in the stack ring.
On each bug report, if the accessed address belongs to a slab object, the stack ring is scanned for matching entries. The newest entries are used to print the alloc/free stack traces in the report: one entry for alloc and one for free.
The number of entries in the stack ring is fixed in this patch, but one of the following patches adds a command-line argument to control it.
---
mm/kasan/kasan.h | 21 +++++++++++ mm/kasan/report_tags.c | 71 +++++++++++++++++++++++++++++++++++++++ mm/kasan/tags.c | 52 ++++++++++++++++++++++++++++ 3 files changed, 144 insertions(+)
mm/kasan/kasan.h renamed from mm/kasan/kasan.h~kasan-implement-stack-ring-for-tag-based-modes +21 -0
@@ -2,6 +2,7 @@#ifndef __MM_KASAN_KASAN_H#define __MM_KASAN_KASAN_H +#include <linux/atomic.h> #include <linux/kasan.h> #include <linux/kasan-tags.h> #include <linux/kfence.h>
@@ -233,6 +234,26 @@ struct kasan_free_meta {#endif /* CONFIG_KASAN_GENERIC */ +#if defined(CONFIG_KASAN_SW_TAGS ) || defined(CONFIG_KASAN_HW_TAGS ) + +struct kasan_stack_ring_entry { +void *ptr; +size_t size; +u32 pid; +depot_stack_handle_t stack; +bool is_free; +}; + +#define KASAN_STACK_RING_SIZE (32 << 10) + +struct kasan_stack_ring { +rwlock_t lock; +atomic64_t pos; +struct kasan_stack_ring_entry entries[KASAN_STACK_RING_SIZE ]; +}; + +#endif /* CONFIG_KASAN_SW_TAGS || CONFIG_KASAN_HW_TAGS */ +#if IS_ENABLED (CONFIG_KASAN_KUNIT_TEST )/* Used in KUnit-compatible KASAN tests. */ struct kunit_kasan_status {
mm/kasan/report_tags.c renamed from mm/kasan/report_tags.c~kasan-implement-stack-ring-for-tag-based-modes +71 -0
84 lines not on this page · raw message
mm/kasan/tags.c renamed from mm/kasan/tags.c~kasan-implement-stack-ring-for-tag-based-modes +52 -0
69 lines not on this page · raw message
_
Patches currently in -mm which might be from [email protected] are
kasan-fix-array-bounds-warnings-in-tests.patch