drm/i915: Add flex arrays to struct i915_syncmap
authorErick Archer <erick.archer@gmx.com>
Thu, 8 Feb 2024 18:13:18 +0000 (19:13 +0100)
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>
Mon, 12 Feb 2024 11:59:37 +0000 (11:59 +0000)
commitd2435a8e3d683adb9143b9ad3c416ac3a4ca9688
treee1ddd9a3f8b0e3afed7c9579dd411146afb5b3c9
parent4104e634bba446a7b32b4accc980d97dde849f0d
drm/i915: Add flex arrays to struct i915_syncmap

The "struct i915_syncmap" uses a dynamically sized set of trailing
elements. It can use an "u32" array or a "struct i915_syncmap *"
array.

So, use the preferred way in the kernel declaring flexible arrays [1].
Because there are two possibilities for the trailing arrays, it is
necessary to declare a union and use the DECLARE_FLEX_ARRAY macro.

The comment can be removed as the union is now clear enough.

Also, avoid the open-coded arithmetic in the memory allocator functions
[2] using the "struct_size" macro.

Moreover, refactor the "__sync_seqno" and "__sync_child" functions due
to now it is possible to use the union members added to the structure.
This way, it is also possible to avoid the open-coded arithmetic in
pointers.

Link: https://www.kernel.org/doc/html/next/process/deprecated.html#zero-length-and-one-element-arrays
Link: https://www.kernel.org/doc/html/next/process/deprecated.html#open-coded-arithmetic-in-allocator-arguments
Signed-off-by: Erick Archer <erick.archer@gmx.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240208181318.4259-1-erick.archer@gmx.com
drivers/gpu/drm/i915/i915_syncmap.c