2024-02-29 10:57:35

by Liao, Chang

[permalink] [raw]
Subject: [PATCH] arm64: cpufeatures: Clean up temporary variable to simplify code

Clean up one temporary variable to simplifiy code in capability
detection.

Signed-off-by: Liao Chang <[email protected]>
---
arch/arm64/kernel/cpufeature.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
index 8d1a634a403e..0e900b23f7ab 100644
--- a/arch/arm64/kernel/cpufeature.c
+++ b/arch/arm64/kernel/cpufeature.c
@@ -3052,13 +3052,9 @@ static void __init enable_cpu_capabilities(u16 scope_mask)
boot_scope = !!(scope_mask & SCOPE_BOOT_CPU);

for (i = 0; i < ARM64_NCAPS; i++) {
- unsigned int num;
-
caps = cpucap_ptrs[i];
- if (!caps || !(caps->type & scope_mask))
- continue;
- num = caps->capability;
- if (!cpus_have_cap(num))
+ if (!caps || !(caps->type & scope_mask) ||
+ !cpus_have_cap(caps->capability))
continue;

if (boot_scope && caps->cpu_enable)
--
2.34.1



2024-02-29 11:10:53

by Mark Rutland

[permalink] [raw]
Subject: Re: [PATCH] arm64: cpufeatures: Clean up temporary variable to simplify code

On Thu, Feb 29, 2024 at 10:52:08AM +0000, Liao Chang wrote:
> Clean up one temporary variable to simplifiy code in capability
> detection.
>
> Signed-off-by: Liao Chang <[email protected]>

This looks line a nice cleanup, so:

Acked-by: Mark Rutland <[email protected]>

For context, we removed the last other user of 'num' in commit:

21fb26bfb01ffe0d ("arm64: alternatives: add alternative_has_feature_*()")

Mark.

> ---
> arch/arm64/kernel/cpufeature.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
> index 8d1a634a403e..0e900b23f7ab 100644
> --- a/arch/arm64/kernel/cpufeature.c
> +++ b/arch/arm64/kernel/cpufeature.c
> @@ -3052,13 +3052,9 @@ static void __init enable_cpu_capabilities(u16 scope_mask)
> boot_scope = !!(scope_mask & SCOPE_BOOT_CPU);
>
> for (i = 0; i < ARM64_NCAPS; i++) {
> - unsigned int num;
> -
> caps = cpucap_ptrs[i];
> - if (!caps || !(caps->type & scope_mask))
> - continue;
> - num = caps->capability;
> - if (!cpus_have_cap(num))
> + if (!caps || !(caps->type & scope_mask) ||
> + !cpus_have_cap(caps->capability))
> continue;
>
> if (boot_scope && caps->cpu_enable)
> --
> 2.34.1
>

2024-03-01 18:29:11

by Catalin Marinas

[permalink] [raw]
Subject: Re: [PATCH] arm64: cpufeatures: Clean up temporary variable to simplify code

On Thu, 29 Feb 2024 10:52:08 +0000, Liao Chang wrote:
> Clean up one temporary variable to simplifiy code in capability
> detection.
>
>

Applied to arm64 (for-next/misc), thanks!

[1/1] arm64: cpufeatures: Clean up temporary variable to simplify code
https://git.kernel.org/arm64/c/622442666dcc

--
Catalin


2024-03-01 19:47:49

by Jeremy Linton

[permalink] [raw]
Subject: Re: [PATCH] arm64: cpufeatures: Clean up temporary variable to simplify code

Hi,

On 2/29/24 04:52, Liao Chang wrote:
> Clean up one temporary variable to simplifiy code in capability
> detection.
>
> Signed-off-by: Liao Chang <[email protected]>
> ---
> arch/arm64/kernel/cpufeature.c | 8 ++------
> 1 file changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c
> index 8d1a634a403e..0e900b23f7ab 100644
> --- a/arch/arm64/kernel/cpufeature.c
> +++ b/arch/arm64/kernel/cpufeature.c
> @@ -3052,13 +3052,9 @@ static void __init enable_cpu_capabilities(u16 scope_mask)
> boot_scope = !!(scope_mask & SCOPE_BOOT_CPU);
>
> for (i = 0; i < ARM64_NCAPS; i++) {
> - unsigned int num;
> -
> caps = cpucap_ptrs[i];
> - if (!caps || !(caps->type & scope_mask))
> - continue;
> - num = caps->capability;
> - if (!cpus_have_cap(num))
> + if (!caps || !(caps->type & scope_mask) ||
> + !cpus_have_cap(caps->capability))
> continue;
>
> if (boot_scope && caps->cpu_enable)

Looks functionality equivalent to me, and just to see if it makes a
binary difference I compiled both variations (gcc 14.0.1) and they do
result in the same instruction sequence. Meaning gcc is smart enough to
drop the tmp, its also smart enough equate/apply de Morgan's law. The
latter might make it more readable too, but I guess its all a matter of
taste.


Reviewed-by: Jeremy Linton <[email protected]>