2023-07-17 18:04:59

by Christophe JAILLET

[permalink] [raw]
Subject: [PATCH] arm64/ptrace: Fix an error handling path in sve_set_common()

All error handling paths go to 'out', except this one. Be consistent and
also branch to 'out' here.

Fixes: e12310a0d30f ("arm64/sme: Implement ptrace support for streaming mode SVE registers")
Signed-off-by: Christophe JAILLET <[email protected]>
---
/!\ Speculative /!\

This patch is based on analysis of the surrounding code and should be
reviewed with care !

If the patch is wrong, maybe a comment in the code could explain why.

/!\ Speculative /!\
---
arch/arm64/kernel/ptrace.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c
index d7f4f0d1ae12..9bc23f1b499e 100644
--- a/arch/arm64/kernel/ptrace.c
+++ b/arch/arm64/kernel/ptrace.c
@@ -884,7 +884,8 @@ static int sve_set_common(struct task_struct *target,
break;
default:
WARN_ON_ONCE(1);
- return -EINVAL;
+ ret = -EINVAL;
+ goto out;
}

/*
--
2.34.1



2023-07-17 18:23:28

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] arm64/ptrace: Fix an error handling path in sve_set_common()

On Mon, Jul 17, 2023 at 07:55:05PM +0200, Christophe JAILLET wrote:
> All error handling paths go to 'out', except this one. Be consistent and
> also branch to 'out' here.

This looks like a reasonable cleanup.

Reviewed-by: Mark Brown <[email protected]>

> Fixes: e12310a0d30f ("arm64/sme: Implement ptrace support for streaming mode SVE registers")

> default:
> WARN_ON_ONCE(1);
> - return -EINVAL;
> + ret = -EINVAL;
> + goto out;
> }

It's not exactly a fix though (probably not worth backporting for
example, which tends to get keyed off the fixes tag) since something's
incredibly confused if this code path ever gets executed, we're setting
an unknown SVE vector type hence the WARN_ON() there.


Attachments:
(No filename) (742.00 B)
signature.asc (499.00 B)
Download all attachments

2023-07-18 06:36:59

by Anshuman Khandual

[permalink] [raw]
Subject: Re: [PATCH] arm64/ptrace: Fix an error handling path in sve_set_common()



On 7/17/23 23:38, Mark Brown wrote:
> On Mon, Jul 17, 2023 at 07:55:05PM +0200, Christophe JAILLET wrote:
>> All error handling paths go to 'out', except this one. Be consistent and
>> also branch to 'out' here.
>
> This looks like a reasonable cleanup.
>
> Reviewed-by: Mark Brown <[email protected]>

Reviewed-by: Anshuman Khandual <[email protected]>

>
>> Fixes: e12310a0d30f ("arm64/sme: Implement ptrace support for streaming mode SVE registers")
>
>> default:
>> WARN_ON_ONCE(1);
>> - return -EINVAL;
>> + ret = -EINVAL;
>> + goto out;
>> }
>
> It's not exactly a fix though (probably not worth backporting for

+1

> example, which tends to get keyed off the fixes tag) since something's
> incredibly confused if this code path ever gets executed, we're setting
> an unknown SVE vector type hence the WARN_ON() there.

Agreed.

2023-07-27 12:58:50

by Will Deacon

[permalink] [raw]
Subject: Re: [PATCH] arm64/ptrace: Fix an error handling path in sve_set_common()

On Mon, 17 Jul 2023 19:55:05 +0200, Christophe JAILLET wrote:
> All error handling paths go to 'out', except this one. Be consistent and
> also branch to 'out' here.
>
>

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

[1/1] arm64/ptrace: Fix an error handling path in sve_set_common()
https://git.kernel.org/arm64/c/5f69ca4229c7

Cheers,
--
Will

https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev