[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