Re: [PATCH V2] mips: Enable KCSAN

From: Marco Elver
Date: Fri Feb 11 2022 - 12:06:21 EST


On Fri, 11 Feb 2022 at 17:22, Nemanja Rakovic
<nemanja.rakovic@xxxxxxxxxx> 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@xxxxxxxxxx>

Acked-by: Marco Elver <elver@xxxxxxxxxx>


> ---
> 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
>