kasan: remove kasan_unpoison_stack_above_sp_to()
kasan_unpoison_stack_above_sp_to() is defined in kasan code but never used. The function was introduced as part of the commit: commit9f7d416c36
("kprobes: Unpoison stack in jprobe_return() for KASAN") ... where it was necessary because x86's jprobe_return() would leave stale shadow on the stack, and was an oddity in that regard. Since then, jprobes were removed entirely, and as of commit: commit80006dbee6
("kprobes/x86: Remove jprobe implementation") ... there have been no callers of this function. Remove the declaration and the implementation. Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Reviewed-by: Mark Rutland <mark.rutland@arm.com> Reviewed-by: Andrey Konovalov <andreyknvl@google.com> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> Cc: Alexander Potapenko <glider@google.com> Cc: Dmitry Vyukov <dvyukov@google.com> Link: http://lkml.kernel.org/r/20200706143505.23299-1-vincenzo.frascino@arm.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
9793b62663
commit
c0e16ab3b5
|
@ -38,7 +38,6 @@ extern void kasan_disable_current(void);
|
|||
void kasan_unpoison_shadow(const void *address, size_t size);
|
||||
|
||||
void kasan_unpoison_task_stack(struct task_struct *task);
|
||||
void kasan_unpoison_stack_above_sp_to(const void *watermark);
|
||||
|
||||
void kasan_alloc_pages(struct page *page, unsigned int order);
|
||||
void kasan_free_pages(struct page *page, unsigned int order);
|
||||
|
@ -101,7 +100,6 @@ void kasan_restore_multi_shot(bool enabled);
|
|||
static inline void kasan_unpoison_shadow(const void *address, size_t size) {}
|
||||
|
||||
static inline void kasan_unpoison_task_stack(struct task_struct *task) {}
|
||||
static inline void kasan_unpoison_stack_above_sp_to(const void *watermark) {}
|
||||
|
||||
static inline void kasan_enable_current(void) {}
|
||||
static inline void kasan_disable_current(void) {}
|
||||
|
|
|
@ -180,21 +180,6 @@ asmlinkage void kasan_unpoison_task_stack_below(const void *watermark)
|
|||
kasan_unpoison_shadow(base, watermark - base);
|
||||
}
|
||||
|
||||
/*
|
||||
* Clear all poison for the region between the current SP and a provided
|
||||
* watermark value, as is sometimes required prior to hand-crafted asm function
|
||||
* returns in the middle of functions.
|
||||
*/
|
||||
void kasan_unpoison_stack_above_sp_to(const void *watermark)
|
||||
{
|
||||
const void *sp = __builtin_frame_address(0);
|
||||
size_t size = watermark - sp;
|
||||
|
||||
if (WARN_ON(sp > watermark))
|
||||
return;
|
||||
kasan_unpoison_shadow(sp, size);
|
||||
}
|
||||
|
||||
void kasan_alloc_pages(struct page *page, unsigned int order)
|
||||
{
|
||||
u8 tag;
|
||||
|
|
Loading…
Reference in New Issue