Message ID | 49f7f2c12b0d5805f9a7b7092b986bbc2dd077a1.1605046192.git.andreyknvl@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kasan: add hardware tag-based mode for arm64 | expand |
On Tue, Nov 10, 2020 at 11:11 PM Andrey Konovalov <andreyknvl@google.com> wrote: > > This is a preparatory commit for the upcoming addition of a new hardware > tag-based (MTE-based) KASAN mode. > > kasan_non_canonical_hook() is only applicable to KASAN modes that use > shadow memory, and won't be needed for hardware tag-based KASAN. > > No functional changes for software modes. > > Signed-off-by: Andrey Konovalov <andreyknvl@google.com> > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > Reviewed-by: Marco Elver <elver@google.com> > --- > Change-Id: Icc9f5ef100a2e86f3a4214a0c3131a68266181b2 > --- > mm/kasan/report.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/mm/kasan/report.c b/mm/kasan/report.c > index 5d5733831ad7..594bad2a3a5e 100644 > --- a/mm/kasan/report.c > +++ b/mm/kasan/report.c > @@ -403,7 +403,8 @@ bool kasan_report(unsigned long addr, size_t size, bool is_write, > return ret; > } > > -#ifdef CONFIG_KASAN_INLINE > +#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \ > + defined(CONFIG_KASAN_INLINE) > /* > * With CONFIG_KASAN_INLINE, accesses to bogus pointers (outside the high > * canonical half of the address space) cause out-of-bounds shadow memory reads Perhaps this comment also needs to be updated. > -- > 2.29.2.222.g5d2a92d10f8-goog >
On Wed, Nov 11, 2020 at 4:09 PM Alexander Potapenko <glider@google.com> wrote: > > On Tue, Nov 10, 2020 at 11:11 PM Andrey Konovalov <andreyknvl@google.com> wrote: > > > > This is a preparatory commit for the upcoming addition of a new hardware > > tag-based (MTE-based) KASAN mode. > > > > kasan_non_canonical_hook() is only applicable to KASAN modes that use > > shadow memory, and won't be needed for hardware tag-based KASAN. > > > > No functional changes for software modes. > > > > Signed-off-by: Andrey Konovalov <andreyknvl@google.com> > > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > > Reviewed-by: Marco Elver <elver@google.com> > > --- > > Change-Id: Icc9f5ef100a2e86f3a4214a0c3131a68266181b2 > > --- > > mm/kasan/report.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/mm/kasan/report.c b/mm/kasan/report.c > > index 5d5733831ad7..594bad2a3a5e 100644 > > --- a/mm/kasan/report.c > > +++ b/mm/kasan/report.c > > @@ -403,7 +403,8 @@ bool kasan_report(unsigned long addr, size_t size, bool is_write, > > return ret; > > } > > > > -#ifdef CONFIG_KASAN_INLINE > > +#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \ > > + defined(CONFIG_KASAN_INLINE) > > /* > > * With CONFIG_KASAN_INLINE, accesses to bogus pointers (outside the high > > * canonical half of the address space) cause out-of-bounds shadow memory reads > > Perhaps this comment also needs to be updated. In what way?
On Wed, Nov 11, 2020 at 7:52 PM 'Andrey Konovalov' via kasan-dev <kasan-dev@googlegroups.com> wrote: > > On Wed, Nov 11, 2020 at 4:09 PM Alexander Potapenko <glider@google.com> wrote: > > > > On Tue, Nov 10, 2020 at 11:11 PM Andrey Konovalov <andreyknvl@google.com> wrote: > > > > > > This is a preparatory commit for the upcoming addition of a new hardware > > > tag-based (MTE-based) KASAN mode. > > > > > > kasan_non_canonical_hook() is only applicable to KASAN modes that use > > > shadow memory, and won't be needed for hardware tag-based KASAN. > > > > > > No functional changes for software modes. > > > > > > Signed-off-by: Andrey Konovalov <andreyknvl@google.com> > > > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > > > Reviewed-by: Marco Elver <elver@google.com> > > > --- > > > Change-Id: Icc9f5ef100a2e86f3a4214a0c3131a68266181b2 > > > --- > > > mm/kasan/report.c | 3 ++- > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > > > diff --git a/mm/kasan/report.c b/mm/kasan/report.c > > > index 5d5733831ad7..594bad2a3a5e 100644 > > > --- a/mm/kasan/report.c > > > +++ b/mm/kasan/report.c > > > @@ -403,7 +403,8 @@ bool kasan_report(unsigned long addr, size_t size, bool is_write, > > > return ret; > > > } > > > > > > -#ifdef CONFIG_KASAN_INLINE > > > +#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \ > > > + defined(CONFIG_KASAN_INLINE) > > > /* > > > * With CONFIG_KASAN_INLINE, accesses to bogus pointers (outside the high > > > * canonical half of the address space) cause out-of-bounds shadow memory reads > > > > Perhaps this comment also needs to be updated. > > In what way? Ok, maybe not. I thought you were restricting the set of configs under which this hook is used, so this should've been explained. But as far as I understand, CONFIG_KASAN_INLINE already implies "defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)", doesn't it? Maybe this change is not needed at all then? > > -- > 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@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/kasan-dev/CAAeHK%2BwX%2BJPyZm2A5mDdGFCqnH6kdSBLyOZ2TnWfZnZuq_V0Bw%40mail.gmail.com.
On Thu, Nov 12, 2020 at 4:16 PM Alexander Potapenko <glider@google.com> wrote: > > On Wed, Nov 11, 2020 at 7:52 PM 'Andrey Konovalov' via kasan-dev > <kasan-dev@googlegroups.com> wrote: > > > > On Wed, Nov 11, 2020 at 4:09 PM Alexander Potapenko <glider@google.com> wrote: > > > > > > On Tue, Nov 10, 2020 at 11:11 PM Andrey Konovalov <andreyknvl@google.com> wrote: > > > > > > > > This is a preparatory commit for the upcoming addition of a new hardware > > > > tag-based (MTE-based) KASAN mode. > > > > > > > > kasan_non_canonical_hook() is only applicable to KASAN modes that use > > > > shadow memory, and won't be needed for hardware tag-based KASAN. > > > > > > > > No functional changes for software modes. > > > > > > > > Signed-off-by: Andrey Konovalov <andreyknvl@google.com> > > > > Signed-off-by: Vincenzo Frascino <vincenzo.frascino@arm.com> > > > > Reviewed-by: Marco Elver <elver@google.com> > > > > --- > > > > Change-Id: Icc9f5ef100a2e86f3a4214a0c3131a68266181b2 > > > > --- > > > > mm/kasan/report.c | 3 ++- > > > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > > > > > diff --git a/mm/kasan/report.c b/mm/kasan/report.c > > > > index 5d5733831ad7..594bad2a3a5e 100644 > > > > --- a/mm/kasan/report.c > > > > +++ b/mm/kasan/report.c > > > > @@ -403,7 +403,8 @@ bool kasan_report(unsigned long addr, size_t size, bool is_write, > > > > return ret; > > > > } > > > > > > > > -#ifdef CONFIG_KASAN_INLINE > > > > +#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \ > > > > + defined(CONFIG_KASAN_INLINE) > > > > /* > > > > * With CONFIG_KASAN_INLINE, accesses to bogus pointers (outside the high > > > > * canonical half of the address space) cause out-of-bounds shadow memory reads > > > > > > Perhaps this comment also needs to be updated. > > > > In what way? > > Ok, maybe not. I thought you were restricting the set of configs under > which this hook is used, so this should've been explained. > But as far as I understand, CONFIG_KASAN_INLINE already implies > "defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)", > doesn't it? > Maybe this change is not needed at all then? Ah, yes, you're right. Will drop this patch, thanks!
diff --git a/mm/kasan/report.c b/mm/kasan/report.c index 5d5733831ad7..594bad2a3a5e 100644 --- a/mm/kasan/report.c +++ b/mm/kasan/report.c @@ -403,7 +403,8 @@ bool kasan_report(unsigned long addr, size_t size, bool is_write, return ret; } -#ifdef CONFIG_KASAN_INLINE +#if (defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)) && \ + defined(CONFIG_KASAN_INLINE) /* * With CONFIG_KASAN_INLINE, accesses to bogus pointers (outside the high * canonical half of the address space) cause out-of-bounds shadow memory reads