On Mon, Jul 6, 2020 at 4:35 PM Vincenzo Frascino <vincenzo.frascino@xxxxxxx> wrote: > > The function kasan_unpoison_stack_above_sp_to() is defined in kasan code > but never used. The function was introduced as part of the commit: > > commit 9f7d416c36124667 ("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: > > commit 80006dbee674f9fa ("kprobes/x86: Remove jprobe implementation") > > ... there have been no callers of this function. > > Remove the declaration and the implementation. > > Cc: Andrey Ryabinin <aryabinin@xxxxxxxxxxxxx> > Cc: Alexander Potapenko <glider@xxxxxxxxxx> > Cc: Dmitry Vyukov <dvyukov@xxxxxxxxxx> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@xxxxxxx> Reviewed-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx> Thanks! > --- > include/linux/kasan.h | 2 -- > mm/kasan/common.c | 15 --------------- > 2 files changed, 17 deletions(-) > > diff --git a/include/linux/kasan.h b/include/linux/kasan.h > index 82522e996c76..0ebf2fab8567 100644 > --- a/include/linux/kasan.h > +++ b/include/linux/kasan.h > @@ -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) {} > diff --git a/mm/kasan/common.c b/mm/kasan/common.c > index 757d4074fe28..6339179badb2 100644 > --- a/mm/kasan/common.c > +++ b/mm/kasan/common.c > @@ -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; > -- > 2.27.0 > > -- > You received this message because you are subscribed to the Google Groups "kasan-dev" group. > To unsubscribe from this group and stop receiving emails from it, send an email to kasan-dev+unsubscribe@xxxxxxxxxxxxxxxx. > To view this discussion on the web visit https://groups.google.com/d/msgid/kasan-dev/20200706143505.23299-1-vincenzo.frascino%40arm.com.