arm64/ptrace: Fix an error handling path in sve_set_common()

Message ID aa61301ed2dfd079b74b37f7fede5f179ac3087a.1689616473.git.christophe.jaillet@wanadoo.fr
State New
Headers
Series arm64/ptrace: Fix an error handling path in sve_set_common() |

Commit Message

Christophe JAILLET July 17, 2023, 5:55 p.m. UTC
  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 <christophe.jaillet@wanadoo.fr>
---
/!\ 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(-)
  

Comments

Anshuman Khandual July 18, 2023, 6:28 a.m. UTC | #1
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 <broonie@kernel.org>

Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com>

> 
>> 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.
  
Will Deacon July 27, 2023, 12:22 p.m. UTC | #2
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,
  

Patch

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;
 		}
 
 		/*