On Fri, Feb 05, 2021 at 06:34PM +0100, Andrey Konovalov wrote: > Hwardware tag-based KASAN only reports the first found bug. After that MTE > tag checking gets disabled. Clarify this in comments and documentation. > > Signed-off-by: Andrey Konovalov <andreyknvl@xxxxxxxxxx> Reviewed-by: Marco Elver <elver@xxxxxxxxxx> > --- > Documentation/dev-tools/kasan.rst | 8 ++++++-- > mm/kasan/hw_tags.c | 2 +- > 2 files changed, 7 insertions(+), 3 deletions(-) > > diff --git a/Documentation/dev-tools/kasan.rst b/Documentation/dev-tools/kasan.rst > index e022b7506e37..1faabbe23e09 100644 > --- a/Documentation/dev-tools/kasan.rst > +++ b/Documentation/dev-tools/kasan.rst > @@ -155,7 +155,7 @@ Boot parameters > ~~~~~~~~~~~~~~~ > > Hardware tag-based KASAN mode (see the section about various modes below) is > -intended for use in production as a security mitigation. Therefore it supports > +intended for use in production as a security mitigation. Therefore, it supports > boot parameters that allow to disable KASAN competely or otherwise control > particular KASAN features. > > @@ -166,7 +166,8 @@ particular KASAN features. > ``off``). > > - ``kasan.fault=report`` or ``=panic`` controls whether to only print a KASAN > - report or also panic the kernel (default: ``report``). > + report or also panic the kernel (default: ``report``). Note, that tag > + checking gets disabled after the first reported bug. > > For developers > ~~~~~~~~~~~~~~ > @@ -296,6 +297,9 @@ Note, that enabling CONFIG_KASAN_HW_TAGS always results in in-kernel TBI being > enabled. Even when kasan.mode=off is provided, or when the hardware doesn't > support MTE (but supports TBI). > > +Hardware tag-based KASAN only reports the first found bug. After that MTE tag > +checking gets disabled. > + > What memory accesses are sanitised by KASAN? > -------------------------------------------- > > diff --git a/mm/kasan/hw_tags.c b/mm/kasan/hw_tags.c > index e529428e7a11..6c9285c906b8 100644 > --- a/mm/kasan/hw_tags.c > +++ b/mm/kasan/hw_tags.c > @@ -48,7 +48,7 @@ EXPORT_SYMBOL(kasan_flag_enabled); > /* Whether to collect alloc/free stack traces. */ > DEFINE_STATIC_KEY_FALSE(kasan_flag_stacktrace); > > -/* Whether panic or disable tag checking on fault. */ > +/* Whether to panic or print a report and disable tag checking on fault. */ > bool kasan_flag_panic __ro_after_init; > > /* kasan=off/on */ > -- > 2.30.0.365.g02bc693789-goog >