diff mbox series

arm64: remove redundant 'if HAVE_ARCH_KASAN' in Kconfig

Message ID 20240714105848.1844400-1-masahiroy@kernel.org (mailing list archive)
State New
Headers show
Series arm64: remove redundant 'if HAVE_ARCH_KASAN' in Kconfig | expand

Commit Message

Masahiro Yamada July 14, 2024, 10:58 a.m. UTC
The condition 'select HAVE_ARCH_KASAN' is always true because
there is 'select HAVE_ARCH_KASAN' statement above.

Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
---

 arch/arm64/Kconfig | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Randy Dunlap July 14, 2024, 12:58 p.m. UTC | #1
On 7/14/24 3:58 AM, Masahiro Yamada wrote:
> The condition 'select HAVE_ARCH_KASAN' is always true because
> there is 'select HAVE_ARCH_KASAN' statement above.
> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

Reviewed-by: Randy Dunlap <rdunlap@infradead.org>

Thanks.

> ---
> 
>  arch/arm64/Kconfig | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index c87d16b12e9b..d37cbfc3031e 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -167,9 +167,9 @@ config ARM64
>  	select HAVE_ARCH_JUMP_LABEL
>  	select HAVE_ARCH_JUMP_LABEL_RELATIVE
>  	select HAVE_ARCH_KASAN
> -	select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
> -	select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN
> -	select HAVE_ARCH_KASAN_HW_TAGS if (HAVE_ARCH_KASAN && ARM64_MTE)
> +	select HAVE_ARCH_KASAN_VMALLOC
> +	select HAVE_ARCH_KASAN_SW_TAGS
> +	select HAVE_ARCH_KASAN_HW_TAGS if ARM64_MTE
>  	# Some instrumentation may be unsound, hence EXPERT
>  	select HAVE_ARCH_KCSAN if EXPERT
>  	select HAVE_ARCH_KFENCE
Masahiro Yamada July 14, 2024, 4:03 p.m. UTC | #2
On Sun, Jul 14, 2024 at 7:58 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> The condition 'select HAVE_ARCH_KASAN' is always true because
> there is 'select HAVE_ARCH_KASAN' statement above.
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
>
>  arch/arm64/Kconfig | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index c87d16b12e9b..d37cbfc3031e 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -167,9 +167,9 @@ config ARM64
>         select HAVE_ARCH_JUMP_LABEL
>         select HAVE_ARCH_JUMP_LABEL_RELATIVE
>         select HAVE_ARCH_KASAN
> -       select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
> -       select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN
> -       select HAVE_ARCH_KASAN_HW_TAGS if (HAVE_ARCH_KASAN && ARM64_MTE)
> +       select HAVE_ARCH_KASAN_VMALLOC
> +       select HAVE_ARCH_KASAN_SW_TAGS
> +       select HAVE_ARCH_KASAN_HW_TAGS if ARM64_MTE
>         # Some instrumentation may be unsound, hence EXPERT
>         select HAVE_ARCH_KCSAN if EXPERT
>         select HAVE_ARCH_KFENCE
> --
> 2.43.0
>


I expect this patch will go through the arm64 tree.

(I just sent it to the kbuild ML by mistake)
Masahiro Yamada July 14, 2024, 4:06 p.m. UTC | #3
On Sun, Jul 14, 2024 at 7:58 PM Masahiro Yamada <masahiroy@kernel.org> wrote:
>
> The condition 'select HAVE_ARCH_KASAN' is always true because


This is a typo.

I meant,
  The condition 'if HAVE_ARCH_KASAN' is always true because







> there is 'select HAVE_ARCH_KASAN' statement above.
>
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
>
>  arch/arm64/Kconfig | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index c87d16b12e9b..d37cbfc3031e 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -167,9 +167,9 @@ config ARM64
>         select HAVE_ARCH_JUMP_LABEL
>         select HAVE_ARCH_JUMP_LABEL_RELATIVE
>         select HAVE_ARCH_KASAN
> -       select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
> -       select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN
> -       select HAVE_ARCH_KASAN_HW_TAGS if (HAVE_ARCH_KASAN && ARM64_MTE)
> +       select HAVE_ARCH_KASAN_VMALLOC
> +       select HAVE_ARCH_KASAN_SW_TAGS
> +       select HAVE_ARCH_KASAN_HW_TAGS if ARM64_MTE
>         # Some instrumentation may be unsound, hence EXPERT
>         select HAVE_ARCH_KCSAN if EXPERT
>         select HAVE_ARCH_KFENCE
> --
> 2.43.0
>

--
Best Regards
Masahiro Yamada
Anshuman Khandual July 15, 2024, 2:41 a.m. UTC | #4
On 7/14/24 16:28, Masahiro Yamada wrote:
> The condition 'select HAVE_ARCH_KASAN' is always true because
> there is 'select HAVE_ARCH_KASAN' statement above.
> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> ---
> 
>  arch/arm64/Kconfig | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index c87d16b12e9b..d37cbfc3031e 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -167,9 +167,9 @@ config ARM64
>  	select HAVE_ARCH_JUMP_LABEL
>  	select HAVE_ARCH_JUMP_LABEL_RELATIVE
>  	select HAVE_ARCH_KASAN
> -	select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
> -	select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN
> -	select HAVE_ARCH_KASAN_HW_TAGS if (HAVE_ARCH_KASAN && ARM64_MTE)
> +	select HAVE_ARCH_KASAN_VMALLOC
> +	select HAVE_ARCH_KASAN_SW_TAGS
> +	select HAVE_ARCH_KASAN_HW_TAGS if ARM64_MTE
>  	# Some instrumentation may be unsound, hence EXPERT
>  	select HAVE_ARCH_KCSAN if EXPERT
>  	select HAVE_ARCH_KFENCE

There is another similar instance with HAVE_FUNCTION_GRAPH_TRACER as well.
Just wondering if the following change should be folded in here ?

--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -210,8 +210,8 @@ config ARM64
        select HAVE_FTRACE_MCOUNT_RECORD
        select HAVE_FUNCTION_TRACER
        select HAVE_FUNCTION_ERROR_INJECTION
-       select HAVE_FUNCTION_GRAPH_RETVAL if HAVE_FUNCTION_GRAPH_TRACER
        select HAVE_FUNCTION_GRAPH_TRACER
+       select HAVE_FUNCTION_GRAPH_RETVAL
        select HAVE_GCC_PLUGINS
        select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && \
                HW_PERF_EVENTS && HAVE_PERF_EVENTS_NMI
Mark Rutland July 15, 2024, 1:29 p.m. UTC | #5
On Sun, Jul 14, 2024 at 07:58:46PM +0900, Masahiro Yamada wrote:
> The condition 'select HAVE_ARCH_KASAN' is always true because
> there is 'select HAVE_ARCH_KASAN' statement above.
> 
> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>

Looks like we forgot to simplify this in commit:

  0383808e4d99ac31 ("arm64: kasan: Reduce minimum shadow alignment and enable 5 level paging")

... where we began selecting HAVE_ARCH_KASAN unconditionally.

FWIW:

Acked-by: Mark Rutland <mark.rutland@arm.com>

Mark.

> ---
> 
>  arch/arm64/Kconfig | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index c87d16b12e9b..d37cbfc3031e 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -167,9 +167,9 @@ config ARM64
>  	select HAVE_ARCH_JUMP_LABEL
>  	select HAVE_ARCH_JUMP_LABEL_RELATIVE
>  	select HAVE_ARCH_KASAN
> -	select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
> -	select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN
> -	select HAVE_ARCH_KASAN_HW_TAGS if (HAVE_ARCH_KASAN && ARM64_MTE)
> +	select HAVE_ARCH_KASAN_VMALLOC
> +	select HAVE_ARCH_KASAN_SW_TAGS
> +	select HAVE_ARCH_KASAN_HW_TAGS if ARM64_MTE
>  	# Some instrumentation may be unsound, hence EXPERT
>  	select HAVE_ARCH_KCSAN if EXPERT
>  	select HAVE_ARCH_KFENCE
> -- 
> 2.43.0
> 
>
Mark Rutland July 15, 2024, 1:43 p.m. UTC | #6
On Mon, Jul 15, 2024 at 08:11:08AM +0530, Anshuman Khandual wrote:
> On 7/14/24 16:28, Masahiro Yamada wrote:
> > The condition 'select HAVE_ARCH_KASAN' is always true because
> > there is 'select HAVE_ARCH_KASAN' statement above.
> > 
> > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> > ---
> > 
> >  arch/arm64/Kconfig | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> > 
> > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> > index c87d16b12e9b..d37cbfc3031e 100644
> > --- a/arch/arm64/Kconfig
> > +++ b/arch/arm64/Kconfig
> > @@ -167,9 +167,9 @@ config ARM64
> >  	select HAVE_ARCH_JUMP_LABEL
> >  	select HAVE_ARCH_JUMP_LABEL_RELATIVE
> >  	select HAVE_ARCH_KASAN
> > -	select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
> > -	select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN
> > -	select HAVE_ARCH_KASAN_HW_TAGS if (HAVE_ARCH_KASAN && ARM64_MTE)
> > +	select HAVE_ARCH_KASAN_VMALLOC
> > +	select HAVE_ARCH_KASAN_SW_TAGS
> > +	select HAVE_ARCH_KASAN_HW_TAGS if ARM64_MTE
> >  	# Some instrumentation may be unsound, hence EXPERT
> >  	select HAVE_ARCH_KCSAN if EXPERT
> >  	select HAVE_ARCH_KFENCE
> 
> There is another similar instance with HAVE_FUNCTION_GRAPH_TRACER as well.
> Just wondering if the following change should be folded in here ?
> 
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -210,8 +210,8 @@ config ARM64
>         select HAVE_FTRACE_MCOUNT_RECORD
>         select HAVE_FUNCTION_TRACER
>         select HAVE_FUNCTION_ERROR_INJECTION
> -       select HAVE_FUNCTION_GRAPH_RETVAL if HAVE_FUNCTION_GRAPH_TRACER
>         select HAVE_FUNCTION_GRAPH_TRACER
> +       select HAVE_FUNCTION_GRAPH_RETVAL
>         select HAVE_GCC_PLUGINS
>         select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && \
>                 HW_PERF_EVENTS && HAVE_PERF_EVENTS_NMI

That looks like a sensible cleanup, but I think it'd be better as a
separate patch.

It looks like that has always been redundant since it was introduced in
commit

  3646970322464c21 ("arm64: ftrace: Enable HAVE_FUNCTION_GRAPH_RETVAL")

... would you mind spinning a patch?

Mark.
Masahiro Yamada July 15, 2024, 1:55 p.m. UTC | #7
On Mon, Jul 15, 2024 at 10:29 PM Mark Rutland <mark.rutland@arm.com> wrote:
>
> On Sun, Jul 14, 2024 at 07:58:46PM +0900, Masahiro Yamada wrote:
> > The condition 'select HAVE_ARCH_KASAN' is always true because
> > there is 'select HAVE_ARCH_KASAN' statement above.
> >
> > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
>
> Looks like we forgot to simplify this in commit:
>
>   0383808e4d99ac31 ("arm64: kasan: Reduce minimum shadow alignment and enable 5 level paging")
>
> ... where we began selecting HAVE_ARCH_KASAN unconditionally.


Good point. This may be worth recording in the description.

I will send v2 with a typo fixed.

Thanks.



>
> FWIW:
>
> Acked-by: Mark Rutland <mark.rutland@arm.com>
>
> Mark.
>
> > ---
> >
> >  arch/arm64/Kconfig | 6 +++---
> >  1 file changed, 3 insertions(+), 3 deletions(-)
> >
> > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> > index c87d16b12e9b..d37cbfc3031e 100644
> > --- a/arch/arm64/Kconfig
> > +++ b/arch/arm64/Kconfig
> > @@ -167,9 +167,9 @@ config ARM64
> >       select HAVE_ARCH_JUMP_LABEL
> >       select HAVE_ARCH_JUMP_LABEL_RELATIVE
> >       select HAVE_ARCH_KASAN
> > -     select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
> > -     select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN
> > -     select HAVE_ARCH_KASAN_HW_TAGS if (HAVE_ARCH_KASAN && ARM64_MTE)
> > +     select HAVE_ARCH_KASAN_VMALLOC
> > +     select HAVE_ARCH_KASAN_SW_TAGS
> > +     select HAVE_ARCH_KASAN_HW_TAGS if ARM64_MTE
> >       # Some instrumentation may be unsound, hence EXPERT
> >       select HAVE_ARCH_KCSAN if EXPERT
> >       select HAVE_ARCH_KFENCE
> > --
> > 2.43.0
> >
> >
>
Masahiro Yamada July 15, 2024, 1:59 p.m. UTC | #8
On Mon, Jul 15, 2024 at 10:44 PM Mark Rutland <mark.rutland@arm.com> wrote:
>
> On Mon, Jul 15, 2024 at 08:11:08AM +0530, Anshuman Khandual wrote:
> > On 7/14/24 16:28, Masahiro Yamada wrote:
> > > The condition 'select HAVE_ARCH_KASAN' is always true because
> > > there is 'select HAVE_ARCH_KASAN' statement above.
> > >
> > > Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
> > > ---
> > >
> > >  arch/arm64/Kconfig | 6 +++---
> > >  1 file changed, 3 insertions(+), 3 deletions(-)
> > >
> > > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> > > index c87d16b12e9b..d37cbfc3031e 100644
> > > --- a/arch/arm64/Kconfig
> > > +++ b/arch/arm64/Kconfig
> > > @@ -167,9 +167,9 @@ config ARM64
> > >     select HAVE_ARCH_JUMP_LABEL
> > >     select HAVE_ARCH_JUMP_LABEL_RELATIVE
> > >     select HAVE_ARCH_KASAN
> > > -   select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
> > > -   select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN
> > > -   select HAVE_ARCH_KASAN_HW_TAGS if (HAVE_ARCH_KASAN && ARM64_MTE)
> > > +   select HAVE_ARCH_KASAN_VMALLOC
> > > +   select HAVE_ARCH_KASAN_SW_TAGS
> > > +   select HAVE_ARCH_KASAN_HW_TAGS if ARM64_MTE
> > >     # Some instrumentation may be unsound, hence EXPERT
> > >     select HAVE_ARCH_KCSAN if EXPERT
> > >     select HAVE_ARCH_KFENCE
> >
> > There is another similar instance with HAVE_FUNCTION_GRAPH_TRACER as well.
> > Just wondering if the following change should be folded in here ?
> >
> > --- a/arch/arm64/Kconfig
> > +++ b/arch/arm64/Kconfig
> > @@ -210,8 +210,8 @@ config ARM64
> >         select HAVE_FTRACE_MCOUNT_RECORD
> >         select HAVE_FUNCTION_TRACER
> >         select HAVE_FUNCTION_ERROR_INJECTION
> > -       select HAVE_FUNCTION_GRAPH_RETVAL if HAVE_FUNCTION_GRAPH_TRACER
> >         select HAVE_FUNCTION_GRAPH_TRACER
> > +       select HAVE_FUNCTION_GRAPH_RETVAL
> >         select HAVE_GCC_PLUGINS
> >         select HAVE_HARDLOCKUP_DETECTOR_PERF if PERF_EVENTS && \
> >                 HW_PERF_EVENTS && HAVE_PERF_EVENTS_NMI
>
> That looks like a sensible cleanup, but I think it'd be better as a
> separate patch.
>
> It looks like that has always been redundant since it was introduced in
> commit
>
>   3646970322464c21 ("arm64: ftrace: Enable HAVE_FUNCTION_GRAPH_RETVAL")
>
> ... would you mind spinning a patch?
>
> Mark.


Agree.

We can have a separate patch.


I can see more redundant 'if' and 'depends on'.


For example, KERNEL_MODE_NEON is always 'y'.

config KERNEL_MODE_NEON
     def_bool y



So, I can see redundancy in


     select ARCH_HAS_KERNEL_FPU_SUPPORT if KERNEL_MODE_NEON

and

     config EFI
          bool "UEFI runtime support"
          depends on OF && !CPU_BIG_ENDIAN
          depends on KERNEL_MODE_NEON
diff mbox series

Patch

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index c87d16b12e9b..d37cbfc3031e 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -167,9 +167,9 @@  config ARM64
 	select HAVE_ARCH_JUMP_LABEL
 	select HAVE_ARCH_JUMP_LABEL_RELATIVE
 	select HAVE_ARCH_KASAN
-	select HAVE_ARCH_KASAN_VMALLOC if HAVE_ARCH_KASAN
-	select HAVE_ARCH_KASAN_SW_TAGS if HAVE_ARCH_KASAN
-	select HAVE_ARCH_KASAN_HW_TAGS if (HAVE_ARCH_KASAN && ARM64_MTE)
+	select HAVE_ARCH_KASAN_VMALLOC
+	select HAVE_ARCH_KASAN_SW_TAGS
+	select HAVE_ARCH_KASAN_HW_TAGS if ARM64_MTE
 	# Some instrumentation may be unsound, hence EXPERT
 	select HAVE_ARCH_KCSAN if EXPERT
 	select HAVE_ARCH_KFENCE