On 17.04.2025 16:49, Boris Brezillon wrote:
> drm_panthor_gpu_info::shader_present is currently automatically offset
> by 4 byte to meet Arm's 32-bit/64-bit field alignment rules, but those
> constraints don't stand on 32-bit x86 and cause a mismatch when running
> an x86 binary in a user emulated environment like FEX. It's also
> generally agreed that uAPIs should explicitly pad their struct fields,
> which we originally intended to do, but a mistake slipped through during
> the submission process, leading drm_panthor_gpu_info::shader_present to
> be misaligned.
>
> This uAPI change doesn't break any of the existing users of panthor
> which are either arm32 or arm64 where the 64-bit alignment of
> u64 fields is already enforced a the compiler level.
>
> Changes in v2:
> - Rename the garbage field into pad0 and adjust the comment accordingly
> - Add Liviu's R-b
>
> Fixes: 0f25e493a246 ("drm/panthor: Add uAPI")
> Signed-off-by: Boris Brezillon <boris.brezil...@collabora.com>
> Acked-by: Liviu Dudau <liviu.du...@arm.com>

Reviewed-by: Adrián Larumbe <adrian.laru...@collabora.com>

> ---
>  include/uapi/drm/panthor_drm.h | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/include/uapi/drm/panthor_drm.h b/include/uapi/drm/panthor_drm.h
> index 97e2c4510e69..dbb907eae443 100644
> --- a/include/uapi/drm/panthor_drm.h
> +++ b/include/uapi/drm/panthor_drm.h
> @@ -293,6 +293,9 @@ struct drm_panthor_gpu_info {
>       /** @as_present: Bitmask encoding the number of address-space exposed 
> by the MMU. */
>       __u32 as_present;
>
> +     /** @pad0: MBZ. */
> +     __u32 pad0;
> +
>       /** @shader_present: Bitmask encoding the shader cores exposed by the 
> GPU. */
>       __u64 shader_present;
>
> --
> 2.49.0

Adrian Larumbe

Reply via email to