Message ID | 20250417144907.3679831-2-boris.brezillon@collabora.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | drm/panthor: Fix panthor+FEX-Emu | expand |
On 17/04/2025 15: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.brezillon@collabora.com> > Acked-by: Liviu Dudau <liviu.dudau@arm.com> Reviewed-by: Steven Price <steven.price@arm.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; >
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;