Commit bbc6172e authored by Mark Brown's avatar Mark Brown Committed by Will Deacon
Browse files

arm64/fpsimd: SME no longer requires SVE register state



Now that we track the type of the stored register state separately to
what is active in the task, it is valid to have the FPSIMD register
state stored while in streaming mode. Remove the special case handling
for SME when setting FPSIMD register state.

Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Reviewed-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
Reviewed-by: default avatarMarc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20221115094640.112848-7-broonie@kernel.org


Signed-off-by: default avatarWill Deacon <will@kernel.org>
parent a0136be4
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -815,8 +815,7 @@ void fpsimd_sync_to_sve(struct task_struct *task)
 */
void sve_sync_to_fpsimd(struct task_struct *task)
{
	if (test_tsk_thread_flag(task, TIF_SVE) ||
	    thread_sm_enabled(&task->thread))
	if (task->thread.fp_type == FP_STATE_SVE)
		sve_to_fpsimd(task);
}

+0 −2
Original line number Diff line number Diff line
@@ -907,8 +907,6 @@ static int sve_set_common(struct task_struct *target,
		ret = __fpr_set(target, regset, pos, count, kbuf, ubuf,
				SVE_PT_FPSIMD_OFFSET);
		clear_tsk_thread_flag(target, TIF_SVE);
		if (type == ARM64_VEC_SME)
			fpsimd_force_sync_to_sve(target);
		target->thread.fp_type = FP_STATE_FPSIMD;
		goto out;
	}