arch/mips/Kconfig | 1 + arch/mips/boot/compressed/Makefile | 1 + arch/mips/vdso/Makefile | 3 +++ 3 files changed, 5 insertions(+)
This patch enables KCSAN for the 64-bit version. Updated rules
for the incompatible compilation units (vdso, boot/compressed).
Signed-off-by: Nemanja Rakovic <nemanja.rakovic@syrmia.com>
---
arch/mips/Kconfig | 1 +
arch/mips/boot/compressed/Makefile | 1 +
arch/mips/vdso/Makefile | 3 +++
3 files changed, 5 insertions(+)
Changes were tested on qemu (qemu-system-mips64el) with the
64r6el_defconfig configuration and KCSAN enabled.
diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
index 058446f01487..651d4fe355da 100644
--- a/arch/mips/Kconfig
+++ b/arch/mips/Kconfig
@@ -101,6 +101,7 @@ config MIPS
select TRACE_IRQFLAGS_SUPPORT
select VIRT_TO_BUS
select ARCH_HAS_ELFCORE_COMPAT
+ select HAVE_ARCH_KCSAN if 64BIT
config MIPS_FIXUP_BIGPHYS_ADDR
bool
diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile
index 5a15d51e8884..6cc28173bee8 100644
--- a/arch/mips/boot/compressed/Makefile
+++ b/arch/mips/boot/compressed/Makefile
@@ -38,6 +38,7 @@ KBUILD_AFLAGS := $(KBUILD_AFLAGS) -D__ASSEMBLY__ \
KCOV_INSTRUMENT := n
GCOV_PROFILE := n
UBSAN_SANITIZE := n
+KCSAN_SANITIZE := n
# decompressor objects (linked with vmlinuz)
vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o $(obj)/bswapsi.o
diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile
index d65f55f67e19..f72658b3a53f 100644
--- a/arch/mips/vdso/Makefile
+++ b/arch/mips/vdso/Makefile
@@ -1,6 +1,9 @@
# SPDX-License-Identifier: GPL-2.0
# Objects to go into the VDSO.
+# Sanitizer runtimes are unavailable and cannot be linked here.
+ KCSAN_SANITIZE := n
+
# Absolute relocation type $(ARCH_REL_TYPE_ABS) needs to be defined before
# the inclusion of generic Makefile.
ARCH_REL_TYPE_ABS := R_MIPS_JUMP_SLOT|R_MIPS_GLOB_DAT
--
2.17.1
On Fri, 11 Feb 2022 at 17:22, Nemanja Rakovic <nemanja.rakovic@syrmia.com> wrote: > > This patch enables KCSAN for the 64-bit version. Updated rules > for the incompatible compilation units (vdso, boot/compressed). > > Signed-off-by: Nemanja Rakovic <nemanja.rakovic@syrmia.com> Acked-by: Marco Elver <elver@google.com> > --- > arch/mips/Kconfig | 1 + > arch/mips/boot/compressed/Makefile | 1 + > arch/mips/vdso/Makefile | 3 +++ > 3 files changed, 5 insertions(+) > > Changes were tested on qemu (qemu-system-mips64el) with the > 64r6el_defconfig configuration and KCSAN enabled. > > diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig > index 058446f01487..651d4fe355da 100644 > --- a/arch/mips/Kconfig > +++ b/arch/mips/Kconfig > @@ -101,6 +101,7 @@ config MIPS > select TRACE_IRQFLAGS_SUPPORT > select VIRT_TO_BUS > select ARCH_HAS_ELFCORE_COMPAT > + select HAVE_ARCH_KCSAN if 64BIT > > config MIPS_FIXUP_BIGPHYS_ADDR > bool > diff --git a/arch/mips/boot/compressed/Makefile b/arch/mips/boot/compressed/Makefile > index 5a15d51e8884..6cc28173bee8 100644 > --- a/arch/mips/boot/compressed/Makefile > +++ b/arch/mips/boot/compressed/Makefile > @@ -38,6 +38,7 @@ KBUILD_AFLAGS := $(KBUILD_AFLAGS) -D__ASSEMBLY__ \ > KCOV_INSTRUMENT := n > GCOV_PROFILE := n > UBSAN_SANITIZE := n > +KCSAN_SANITIZE := n > > # decompressor objects (linked with vmlinuz) > vmlinuzobjs-y := $(obj)/head.o $(obj)/decompress.o $(obj)/string.o $(obj)/bswapsi.o > diff --git a/arch/mips/vdso/Makefile b/arch/mips/vdso/Makefile > index d65f55f67e19..f72658b3a53f 100644 > --- a/arch/mips/vdso/Makefile > +++ b/arch/mips/vdso/Makefile > @@ -1,6 +1,9 @@ > # SPDX-License-Identifier: GPL-2.0 > # Objects to go into the VDSO. > > +# Sanitizer runtimes are unavailable and cannot be linked here. > + KCSAN_SANITIZE := n > + > # Absolute relocation type $(ARCH_REL_TYPE_ABS) needs to be defined before > # the inclusion of generic Makefile. > ARCH_REL_TYPE_ABS := R_MIPS_JUMP_SLOT|R_MIPS_GLOB_DAT > -- > 2.17.1 >
On Fri, Feb 11, 2022 at 05:21:42PM +0100, Nemanja Rakovic wrote: > This patch enables KCSAN for the 64-bit version. Updated rules > for the incompatible compilation units (vdso, boot/compressed). I've applied your first patch, please send a patch, which applies to mips-next. Thomas. -- Crap can work. Given enough thrust pigs will fly, but it's not necessarily a good idea. [ RFC1925, 2.3 ]
© 2016 - 2026 Red Hat, Inc.