[PATCH v3] rust: make mutually exclusive with CFI_CLANG

Nathan Chancellor nathan at kernel.org
Thu Apr 4 08:32:58 PDT 2024


On Thu, Apr 04, 2024 at 03:17:02PM +0100, Conor Dooley wrote:
> From: Conor Dooley <conor.dooley at microchip.com>
> 
> On RISC-V and arm64, and presumably x86, if CFI_CLANG is enabled,
> loading a rust module will trigger a kernel panic. Support for
> sanitisers, including kcfi (CFI_CLANG), is in the works, but for now
> they're nightly-only options in rustc. Make RUST depend on !CFI_CLANG
> to prevent configuring a kernel without symmetrical support for kfi.
> 
> Fixes: 2f7ab1267dc9 ("Kbuild: add Rust support")
> cc: stable at vger.kernel.org
> Signed-off-by: Conor Dooley <conor.dooley at microchip.com>

Acked-by: Nathan Chancellor <nathan at kernel.org>

It seems like this won't be forgotten about but if there is not already
an issue open for this somewhere, it would be good to have one, since we
obviously want this for both C and Rust code.

As a general meta comment not directed at anyone in particualr, I think
these 'depends on !' should all have some sort of comment or description
as to why they are disabled. I can infer from most of them but it would
still be good to be explicit, especially since someone might want to
work on fixing the ones that are due to missing support and such.

> ---
> Sending this one on its own, there's no explicit dep on this for the
> riscv enabling patch, v3 to continue the numbering from there. Nothing
> has changed since v2.
> 
> CC: Miguel Ojeda <ojeda at kernel.org>
> CC: Alex Gaynor <alex.gaynor at gmail.com>
> CC: Wedson Almeida Filho <wedsonaf at gmail.com>
> CC: linux-kernel at vger.kernel.org (open list)
> CC: rust-for-linux at vger.kernel.org
> CC: Sami Tolvanen <samitolvanen at google.com>
> CC: Kees Cook <keescook at chromium.org>
> CC: Nathan Chancellor <nathan at kernel.org>
> CC: llvm at lists.linux.dev
> ---
>  init/Kconfig | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/init/Kconfig b/init/Kconfig
> index aa02aec6aa7d..ad9a2da27dc9 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -1899,6 +1899,7 @@ config RUST
>  	bool "Rust support"
>  	depends on HAVE_RUST
>  	depends on RUST_IS_AVAILABLE
> +	depends on !CFI_CLANG
>  	depends on !MODVERSIONS
>  	depends on !GCC_PLUGINS
>  	depends on !RANDSTRUCT
> -- 
> 2.43.0
> 
> 



More information about the linux-riscv mailing list