[PATCH v2 03/38] arm64: Factor out cpucap definitions
Mark Rutland
mark.rutland at arm.com
Thu Oct 5 05:29:30 PDT 2023
On Thu, Oct 05, 2023 at 10:49:49AM +0100, Mark Rutland wrote:
> For clarity it would be nice to factor cpucap manipulation out of
> <asm/cpufeature.h>, and the obvious place would be <asm/cpucap.h>, but
> this will clash somewhat with <generated/asm/cpucaps.h>.
>
> Rename <generated/asm/cpucaps.h> to <generated/asm/cpucap-defs.h>,
> matching what we do for <generated/asm/sysreg-defs.h>, and introduce a
> new <asm/cpucaps.h> which includes the generated header.
>
> Subsequent patches will fill out <asm/cpucaps.h>.
>
> There should be no functional change as a result of this patch.
>
> Signed-off-by: Mark Rutland <mark.rutland at arm.com>
> Cc: Marc Zyngier <maz at kernel.org>
> Cc: Mark Brown <broonie at kernel.org>
> Cc: Suzuki K Poulose <suzuki.poulose at arm.com>
> Cc: Will Deacon <will at kernel.org>
> ---
> arch/arm64/include/asm/cpucaps.h | 8 ++++++++
> arch/arm64/tools/Makefile | 4 ++--
> arch/arm64/tools/gen-cpucaps.awk | 6 +++---
> 3 files changed, 13 insertions(+), 5 deletions(-)
> create mode 100644 arch/arm64/include/asm/cpucaps.h
I've just realised that I forgot to update arch/arm64/include/asm/Kbuild, and
as-is this will cause cpucap-defs.h to be removed and regenerated on every
subsequent build, which isn't desirable.
I'll fold in the below for v3 to fix that:
| diff --git a/arch/arm64/include/asm/Kbuild b/arch/arm64/include/asm/Kbuild
| index 5c8ee5a541d20..4b6d2d52053e4 100644
| --- a/arch/arm64/include/asm/Kbuild
| +++ b/arch/arm64/include/asm/Kbuild
| @@ -6,5 +6,5 @@ generic-y += qspinlock.h
| generic-y += parport.h
| generic-y += user.h
|
| -generated-y += cpucaps.h
| +generated-y += cpucap-defs.h
| generated-y += sysreg-defs.h
Mark.
>
> diff --git a/arch/arm64/include/asm/cpucaps.h b/arch/arm64/include/asm/cpucaps.h
> new file mode 100644
> index 0000000000000..7333b5bbf4488
> --- /dev/null
> +++ b/arch/arm64/include/asm/cpucaps.h
> @@ -0,0 +1,8 @@
> +/* SPDX-License-Identifier: GPL-2.0-only */
> +
> +#ifndef __ASM_CPUCAPS_H
> +#define __ASM_CPUCAPS_H
> +
> +#include <asm/cpucap-defs.h>
> +
> +#endif /* __ASM_CPUCAPS_H */
> diff --git a/arch/arm64/tools/Makefile b/arch/arm64/tools/Makefile
> index 07a93ab21a62b..fa2251d9762d9 100644
> --- a/arch/arm64/tools/Makefile
> +++ b/arch/arm64/tools/Makefile
> @@ -3,7 +3,7 @@
> gen := arch/$(ARCH)/include/generated
> kapi := $(gen)/asm
>
> -kapi-hdrs-y := $(kapi)/cpucaps.h $(kapi)/sysreg-defs.h
> +kapi-hdrs-y := $(kapi)/cpucap-defs.h $(kapi)/sysreg-defs.h
>
> targets += $(addprefix ../../../, $(kapi-hdrs-y))
>
> @@ -17,7 +17,7 @@ quiet_cmd_gen_cpucaps = GEN $@
> quiet_cmd_gen_sysreg = GEN $@
> cmd_gen_sysreg = mkdir -p $(dir $@); $(AWK) -f $(real-prereqs) > $@
>
> -$(kapi)/cpucaps.h: $(src)/gen-cpucaps.awk $(src)/cpucaps FORCE
> +$(kapi)/cpucap-defs.h: $(src)/gen-cpucaps.awk $(src)/cpucaps FORCE
> $(call if_changed,gen_cpucaps)
>
> $(kapi)/sysreg-defs.h: $(src)/gen-sysreg.awk $(src)/sysreg FORCE
> diff --git a/arch/arm64/tools/gen-cpucaps.awk b/arch/arm64/tools/gen-cpucaps.awk
> index 8525980379d71..2f4f61a0af17e 100755
> --- a/arch/arm64/tools/gen-cpucaps.awk
> +++ b/arch/arm64/tools/gen-cpucaps.awk
> @@ -15,8 +15,8 @@ function fatal(msg) {
> /^#/ { next }
>
> BEGIN {
> - print "#ifndef __ASM_CPUCAPS_H"
> - print "#define __ASM_CPUCAPS_H"
> + print "#ifndef __ASM_CPUCAP_DEFS_H"
> + print "#define __ASM_CPUCAP_DEFS_H"
> print ""
> print "/* Generated file - do not edit */"
> cap_num = 0
> @@ -31,7 +31,7 @@ BEGIN {
> END {
> printf("#define ARM64_NCAPS\t\t\t\t\t%d\n", cap_num)
> print ""
> - print "#endif /* __ASM_CPUCAPS_H */"
> + print "#endif /* __ASM_CPUCAP_DEFS_H */"
> }
>
> # Any lines not handled by previous rules are unexpected
> --
> 2.30.2
>
More information about the linux-arm-kernel
mailing list