[PATCH v12 23/40] arm64/sme: Add ptrace support for ZA

Thiago Jung Bauermann thiago.bauermann at linaro.org
Tue Mar 15 14:51:36 PDT 2022


Hello,

Just one trivial comment:

Mark Brown <broonie at kernel.org> writes:

> +static int za_get(struct task_struct *target,
> +		  const struct user_regset *regset,
> +		  struct membuf to)
> +{
> +	struct user_za_header header;
> +	unsigned int vq;
> +	unsigned long start, end;
> +
> +	if (!system_supports_sme())
> +		return -EINVAL;
> +
> +	/* Header */
> +	memset(&header, 0, sizeof(header));
> +
> +	if (test_tsk_thread_flag(target, TIF_SME_VL_INHERIT))
> +		header.flags |= ZA_PT_VL_INHERIT;
> +
> +	header.vl = task_get_sme_vl(target);
> +	vq = sve_vq_from_vl(header.vl);
> +	header.max_vl = sme_max_vl();
> +	header.max_size = ZA_PT_SIZE(vq);
> +
> +	/* If ZA is not active there is only the header */
> +	if (thread_za_enabled(&target->thread))
> +		header.size = ZA_PT_SIZE(vq);
> +	else
> +		header.size = ZA_PT_ZA_OFFSET;
> +
> +	membuf_write(&to, &header, sizeof(header));
> +
> +	BUILD_BUG_ON(ZA_PT_ZA_OFFSET != sizeof(header));
> +	end = ZA_PT_ZA_OFFSET;
> +;

Stray semicolon.

> +	if (target == current)
> +		fpsimd_preserve_current_state();
> +
> +	/* Any register data to include? */
> +	if (thread_za_enabled(&target->thread)) {
> +		start = end;
> +		end = ZA_PT_SIZE(vq);
> +		membuf_write(&to, target->thread.za_state, end - start);
> +	}
> +
> +	/* Zero any trailing padding */
> +	start = end;
> +	end = ALIGN(header.size, SVE_VQ_BYTES);
> +	return membuf_zero(&to, end - start);
> +}

-- 
Thanks,
Thiago



More information about the linux-arm-kernel mailing list