Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/amd/display: fix graphics_object_id size

The graphics_object_id structure is meant to fit into 32 bits, as it's
passed by value in and out of functions. A recent change increased
the size to 128 bits, so it's now always passed by reference, which
is clearly not intended and ends up producing a compile-time warning:

drivers/gpu/drm/amd/amdgpu/../display/dc/link/link_factory.c: In function 'construct_phy':
drivers/gpu/drm/amd/amdgpu/../display/dc/link/link_factory.c:743:1: error: the frame size of 1040 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]

Add back the bitfields to revert to the original size, while keeping
the 'enum' type change.

Fixes: fec85f995a4b ("drm/amd/display: Fix compiler redefinition warnings for certain configs")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>

authored by

Arnd Bergmann and committed by
Alex Deucher
6d438caa 88c61827

+2 -2
+2 -2
drivers/gpu/drm/amd/display/include/grph_object_id.h
··· 226 226 227 227 struct graphics_object_id { 228 228 uint32_t id:8; 229 - enum object_enum_id enum_id; 230 - enum object_type type; 229 + enum object_enum_id enum_id :4; 230 + enum object_type type :4; 231 231 uint32_t reserved:16; /* for padding. total size should be u32 */ 232 232 }; 233 233