diff mbox series

arm64/sme: Clearing TIF_SVE but not TIF_SME in za_set()

Message ID 20220823015627.4161141-1-bobo.shaobowang@huawei.com (mailing list archive)
State New, archived
Headers show
Series arm64/sme: Clearing TIF_SVE but not TIF_SME in za_set() | expand

Commit Message

Wangshaobo (bobo) Aug. 23, 2022, 1:56 a.m. UTC
Clearing target's TIF_SVE but not current's TIF_SME in za_set(), as it indicates
target's SVE storage unavailable.

Fixes: 776b4a1cf364 ("arm64/sme: Add ptrace support for ZA")
Signed-off-by: Wang ShaoBo <bobo.shaobowang@huawei.com>
---
 arch/arm64/kernel/ptrace.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Mark Brown Aug. 23, 2022, 11:26 a.m. UTC | #1
On Tue, Aug 23, 2022 at 09:56:27AM +0800, Wang ShaoBo wrote:

> Clearing target's TIF_SVE but not current's TIF_SME in za_set(), as it indicates
> target's SVE storage unavailable.

> +++ b/arch/arm64/kernel/ptrace.c
> @@ -1084,7 +1084,7 @@ static int za_set(struct task_struct *target,
>  	if (!target->thread.sve_state) {
>  		sve_alloc(target);
>  		if (!target->thread.sve_state) {
> -			clear_thread_flag(TIF_SME);
> +			clear_tsk_thread_flag(target, TIF_SVE);
>  			ret = -ENOMEM;
>  			goto out;
>  		}

We didn't set TIF_SVE so we have no reason to clear it here, we know it
can't have been set since there was no sve_state allocated.  The clear
of TIF_SME is happening on the wrong task though, and TBH is just
redudnant for similar reasons.
diff mbox series

Patch

diff --git a/arch/arm64/kernel/ptrace.c b/arch/arm64/kernel/ptrace.c
index 21da83187a60..66d5c7efb745 100644
--- a/arch/arm64/kernel/ptrace.c
+++ b/arch/arm64/kernel/ptrace.c
@@ -1084,7 +1084,7 @@  static int za_set(struct task_struct *target,
 	if (!target->thread.sve_state) {
 		sve_alloc(target);
 		if (!target->thread.sve_state) {
-			clear_thread_flag(TIF_SME);
+			clear_tsk_thread_flag(target, TIF_SVE);
 			ret = -ENOMEM;
 			goto out;
 		}