Message ID | 5185661d553238884613a432cf1d71b1480a23ba.1597425745.git.andreyknvl@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kasan: add hardware tag-based mode for arm64 | expand |
On Fri, Aug 14, 2020 at 07:27:01PM +0200, Andrey Konovalov wrote: > Software tag-based KASAN provides its own tag checking machinery that > can conflict with MTE. Don't allow enabling software tag-based KASAN > when MTE is enabled. > > Signed-off-by: Andrey Konovalov <andreyknvl@google.com> > --- > lib/Kconfig.kasan | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan > index b4cf6c519d71..e500c18cbe79 100644 > --- a/lib/Kconfig.kasan > +++ b/lib/Kconfig.kasan > @@ -69,6 +69,7 @@ config KASAN_GENERIC > config KASAN_SW_TAGS > bool "Software tag-based mode" > depends on HAVE_ARCH_KASAN_SW_TAGS && CC_HAS_KASAN_SW_TAGS > + depends on !ARM64_MTE I think that's better as: diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 10cf81d70657..736c32bd8905 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -131,7 +131,7 @@ config ARM64 select HAVE_ARCH_JUMP_LABEL select HAVE_ARCH_JUMP_LABEL_RELATIVE select HAVE_ARCH_KASAN if !(ARM64_16K_PAGES && ARM64_VA_BITS_48) - select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN + select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN && !ARM64_MTE select HAVE_ARCH_KGDB select HAVE_ARCH_MMAP_RND_BITS select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT
Hi Andrey, On 8/27/20 9:04 AM, Catalin Marinas wrote: > On Fri, Aug 14, 2020 at 07:27:01PM +0200, Andrey Konovalov wrote: >> Software tag-based KASAN provides its own tag checking machinery that >> can conflict with MTE. Don't allow enabling software tag-based KASAN >> when MTE is enabled. >> >> Signed-off-by: Andrey Konovalov <andreyknvl@google.com> >> --- >> lib/Kconfig.kasan | 1 + >> 1 file changed, 1 insertion(+) >> >> diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan >> index b4cf6c519d71..e500c18cbe79 100644 >> --- a/lib/Kconfig.kasan >> +++ b/lib/Kconfig.kasan >> @@ -69,6 +69,7 @@ config KASAN_GENERIC >> config KASAN_SW_TAGS >> bool "Software tag-based mode" >> depends on HAVE_ARCH_KASAN_SW_TAGS && CC_HAS_KASAN_SW_TAGS >> + depends on !ARM64_MTE > > I think that's better as: > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > index 10cf81d70657..736c32bd8905 100644 > --- a/arch/arm64/Kconfig > +++ b/arch/arm64/Kconfig > @@ -131,7 +131,7 @@ config ARM64 > select HAVE_ARCH_JUMP_LABEL > select HAVE_ARCH_JUMP_LABEL_RELATIVE > select HAVE_ARCH_KASAN if !(ARM64_16K_PAGES && ARM64_VA_BITS_48) > - select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN > + select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN && !ARM64_MTE > select HAVE_ARCH_KGDB > select HAVE_ARCH_MMAP_RND_BITS > select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT > I agree with Catalin here, "select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN && !ARM64_MTE" should be sufficient.
On Thu, Aug 27, 2020 at 11:52 AM Vincenzo Frascino <vincenzo.frascino@arm.com> wrote: > > Hi Andrey, > > On 8/27/20 9:04 AM, Catalin Marinas wrote: > > On Fri, Aug 14, 2020 at 07:27:01PM +0200, Andrey Konovalov wrote: > >> Software tag-based KASAN provides its own tag checking machinery that > >> can conflict with MTE. Don't allow enabling software tag-based KASAN > >> when MTE is enabled. > >> > >> Signed-off-by: Andrey Konovalov <andreyknvl@google.com> > >> --- > >> lib/Kconfig.kasan | 1 + > >> 1 file changed, 1 insertion(+) > >> > >> diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan > >> index b4cf6c519d71..e500c18cbe79 100644 > >> --- a/lib/Kconfig.kasan > >> +++ b/lib/Kconfig.kasan > >> @@ -69,6 +69,7 @@ config KASAN_GENERIC > >> config KASAN_SW_TAGS > >> bool "Software tag-based mode" > >> depends on HAVE_ARCH_KASAN_SW_TAGS && CC_HAS_KASAN_SW_TAGS > >> + depends on !ARM64_MTE > > > > I think that's better as: > > > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig > > index 10cf81d70657..736c32bd8905 100644 > > --- a/arch/arm64/Kconfig > > +++ b/arch/arm64/Kconfig > > @@ -131,7 +131,7 @@ config ARM64 > > select HAVE_ARCH_JUMP_LABEL > > select HAVE_ARCH_JUMP_LABEL_RELATIVE > > select HAVE_ARCH_KASAN if !(ARM64_16K_PAGES && ARM64_VA_BITS_48) > > - select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN > > + select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN && !ARM64_MTE > > select HAVE_ARCH_KGDB > > select HAVE_ARCH_MMAP_RND_BITS > > select HAVE_ARCH_MMAP_RND_COMPAT_BITS if COMPAT > > > > I agree with Catalin here, "select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN && > !ARM64_MTE" should be sufficient. Sounds good, will do in v2, thanks!
diff --git a/lib/Kconfig.kasan b/lib/Kconfig.kasan index b4cf6c519d71..e500c18cbe79 100644 --- a/lib/Kconfig.kasan +++ b/lib/Kconfig.kasan @@ -69,6 +69,7 @@ config KASAN_GENERIC config KASAN_SW_TAGS bool "Software tag-based mode" depends on HAVE_ARCH_KASAN_SW_TAGS && CC_HAS_KASAN_SW_TAGS + depends on !ARM64_MTE help Enables software tag-based KASAN mode.
Software tag-based KASAN provides its own tag checking machinery that can conflict with MTE. Don't allow enabling software tag-based KASAN when MTE is enabled. Signed-off-by: Andrey Konovalov <andreyknvl@google.com> --- lib/Kconfig.kasan | 1 + 1 file changed, 1 insertion(+)