Re: [PATCH 2/5] arm64/sysreg: Enforce whole line match for closing blocks

From: Marc Zyngier
Date: Wed Jan 15 2025 - 09:17:27 EST


On Wed, 15 Jan 2025 13:42:54 +0000,
James Clark <james.clark@xxxxxxxxxx> wrote:
>
> Match on the whole line to prevent matching on prefixes like "Endsysreg"
> vs "EndsysregFields". This could potentially make the script go wrong
> in weird ways so make it fall through to the fatal unhandled statement
> catcher if it doesn't fully match the current block.
>
> Signed-off-by: James Clark <james.clark@xxxxxxxxxx>
> ---
> arch/arm64/tools/gen-sysreg.awk | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/arch/arm64/tools/gen-sysreg.awk b/arch/arm64/tools/gen-sysreg.awk
> index 1a2afc9fdd42..7c7412adf90e 100755
> --- a/arch/arm64/tools/gen-sysreg.awk
> +++ b/arch/arm64/tools/gen-sysreg.awk
> @@ -127,7 +127,7 @@ END {
> next
> }
>
> -/^EndSysregFields/ && block_current() == "SysregFields" {
> +/^EndSysregFields$/ && block_current() == "SysregFields" {

The problem with this sort of things is that it will now fail with
trailing spaces, which is both counter-intuitive and pretty hard to
spot.

Why don't you simply match the field number, like you do in patch 3?

M.

--
Without deviation from the norm, progress is not possible.