]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/panthor: Add missing explicit padding in drm_panthor_gpu_info
authorBoris Brezillon <boris.brezillon@collabora.com>
Fri, 6 Jun 2025 08:09:31 +0000 (10:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 15 Aug 2025 10:13:39 +0000 (12:13 +0200)
[ Upstream commit 95cbab48782bf62e4093837dc15ac6133902c12f ]

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 A-b

Changes in v3:
- Add R-bs

Fixes: 0f25e493a246 ("drm/panthor: Add uAPI")
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
Reviewed-by: Adrián Larumbe <adrian.larumbe@collabora.com>
Reviewed-by: Steven Price <steven.price@arm.com>
Link: https://lore.kernel.org/r/20250606080932.4140010-2-boris.brezillon@collabora.com
Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
include/uapi/drm/panthor_drm.h

index e23a7f9b0eacd1f5795ca20529a2137eba1e5b60..21af62e3cc6f6c618b41586a86faec81bc16f1fa 100644 (file)
@@ -327,6 +327,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;