Re: [tip: x86/bugs] x86/retpoline: Ensure default return thunk isn't used at runtime

From: Marco Elver
Date: Tue Oct 17 2023 - 11:27:17 EST


On Tue, 17 Oct 2023 at 17:24, Nick Desaulniers <ndesaulniers@xxxxxxxxxx> wrote:
>
> + Marco, Dmitry
>
> On Mon, Oct 16, 2023 at 10:28 PM Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
> >
> > On Tue, Oct 17, 2023 at 04:31:09AM +0000, Kaplan, David wrote:
> > > Perhaps another option would be to not compile these two files with KCSAN, as they are already excluded from KASAN and GCOV it looks like.
> >
> > I think the latter would be the easy fix, does this make it go away?
>
> Yeah, usually when I see the other sanitizers being disabled on a per
> object basis, I think "where there's smoke, there's fire."
>
> Reviewed-by: Nick Desaulniers <ndesaulniers@xxxxxxxxxx>
> Reported-by: Nathan Chancellor <nathan@xxxxxxxxxx>
> Closes: https://lore.kernel.org/lkml/20231016214810.GA3942238@dev-arch.thelio-3990X/

Acked-by: Marco Elver <elver@xxxxxxxxxx>

Instrumenting these files really doesn't make sense. Thanks for
catching this and the fix!

> >
> > diff --git a/init/Makefile b/init/Makefile
> > index ec557ada3c12..cbac576c57d6 100644
> > --- a/init/Makefile
> > +++ b/init/Makefile
> > @@ -60,4 +60,5 @@ include/generated/utsversion.h: FORCE
> > $(obj)/version-timestamp.o: include/generated/utsversion.h
> > CFLAGS_version-timestamp.o := -include include/generated/utsversion.h
> > KASAN_SANITIZE_version-timestamp.o := n
> > +KCSAN_SANITIZE_version-timestamp.o := n
> > GCOV_PROFILE_version-timestamp.o := n
> > diff --git a/scripts/Makefile.vmlinux b/scripts/Makefile.vmlinux
> > index 3cd6ca15f390..c9f3e03124d7 100644
> > --- a/scripts/Makefile.vmlinux
> > +++ b/scripts/Makefile.vmlinux
> > @@ -19,6 +19,7 @@ quiet_cmd_cc_o_c = CC $@
> >
> > ifdef CONFIG_MODULES
> > KASAN_SANITIZE_.vmlinux.export.o := n
> > +KCSAN_SANITIZE_.vmlinux.export.o := n
> > GCOV_PROFILE_.vmlinux.export.o := n
> > targets += .vmlinux.export.o
> > vmlinux: .vmlinux.export.o
> >
>
>
> --
> Thanks,
> ~Nick Desaulniers