Re: [PATCH RFC v2 02/29] x86: Create CONFIG_MITIGATION_ADDRESS_SPACE_ISOLATION

Brendan Jackman
2025-03-05T13:12:38Z

On Sat, Mar 01, 2025 at 09:23:51AM +0200, Mike Rapoport wrote:
> Hi Brendan,
>
> On Fri, Jan 10, 2025 at 06:40:28PM +0000, Brendan Jackman wrote:
> > Currently a nop config. Keeping as a separate commit for easy review of
> > the boring bits. Later commits will use and enable this new config.
> >
> > This config is only added for non-UML x86_64 as other architectures do
> > not yet have pending implementations. It also has somewhat artificial
> > dependencies on !PARAVIRT and !KASAN which are explained in the Kconfig
> > file.
> >
> > Co-developed-by: Junaid Shahid <junaids@google.com>
> > Signed-off-by: Junaid Shahid <junaids@google.com>
> > Signed-off-by: Brendan Jackman <jackmanb@google.com>
> > ---
> > arch/alpha/include/asm/Kbuild | 1 +
> > arch/arc/include/asm/Kbuild | 1 +
> > arch/arm/include/asm/Kbuild | 1 +
> > arch/arm64/include/asm/Kbuild | 1 +
> > arch/csky/include/asm/Kbuild | 1 +
> > arch/hexagon/include/asm/Kbuild | 1 +
> > arch/loongarch/include/asm/Kbuild | 3 +++
> > arch/m68k/include/asm/Kbuild | 1 +
> > arch/microblaze/include/asm/Kbuild | 1 +
> > arch/mips/include/asm/Kbuild | 1 +
> > arch/nios2/include/asm/Kbuild | 1 +
> > arch/openrisc/include/asm/Kbuild | 1 +
> > arch/parisc/include/asm/Kbuild | 1 +
> > arch/powerpc/include/asm/Kbuild | 1 +
> > arch/riscv/include/asm/Kbuild | 1 +
> > arch/s390/include/asm/Kbuild | 1 +
> > arch/sh/include/asm/Kbuild | 1 +
> > arch/sparc/include/asm/Kbuild | 1 +
> > arch/um/include/asm/Kbuild | 2 +-
> > arch/x86/Kconfig | 14 ++++++++++++++
> > arch/xtensa/include/asm/Kbuild | 1 +
> > include/asm-generic/asi.h | 5 +++++
> > 22 files changed, 41 insertions(+), 1 deletion(-)
>
> I don't think this all is needed. You can put asi.h with stubs used outside
> of arch/x86 in include/linux and save you the hassle of updating every
> architecture.

...

> If you expect other architectures might implement ASI the config would better
> fit into init/Kconfig or mm/Kconfig and in arch/x86/Kconfig will define
> ARCH_HAS_MITIGATION_ADDRESS_SPACE_ISOLATION.

...

> > +++ b/include/asm-generic/asi.h
> > @@ -0,0 +1,5 @@
> > +/* SPDX-License-Identifier: GPL-2.0 */
> > +#ifndef __ASM_GENERIC_ASI_H
> > +#define __ASM_GENERIC_ASI_H
> > +
> > +#endif
>
> IMHO it should be include/linux/asi.h, with something like
>
> #infdef __LINUX_ASI_H
> #define __LINUX_ASI_H
>
> #ifdef CONFIG_MITIGATION_ADDRESS_SPACE_ISOLATION
>
> #include <asm/asi.h>
>
> #else /* CONFIG_MITIGATION_ADDRESS_SPACE_ISOLATION */
>
> /* stubs for functions used outside arch/ */
>
> #endif /* CONFIG_MITIGATION_ADDRESS_SPACE_ISOLATION */
>
> #endif /* __LINUX_ASI_H */

Thanks Mike! That does indeed look way tidier. I'll try to adopt it.