]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu: Pack nested ucode_info struct
authorAlex Hung <alex.hung@amd.com>
Thu, 9 Jul 2026 22:33:12 +0000 (16:33 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 28 Jul 2026 23:59:22 +0000 (19:59 -0400)
Building for ARCH=um with W=1 C=1 makes the "amd_sriov_msg_vf2pf_info
must be 1 KB" static assertion in amdgv_sriovmsg.h fail under sparse,
exposed after UML builds were enabled.

Sparse does not honor #pragma pack(push, 1) for the nested ucode_info
struct, so it sizes each element as 8 bytes instead of 5 and computes
the surrounding structure as larger than 1 KB. The compilers get this
right via the enclosing pragma, but the annotation should be explicit.

Fixes: af3f2f5db265 ("drm/amdgpu: Remove UML build exclusion from Kconfig")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202607091659.SHEscT0c-lkp@intel.com/
Cc: Harry Wentland <harry.wentland@amd.com>
Assisted-by: Copilot:Claude-Opus-4.8
Signed-off-by: Alex Hung <alex.hung@amd.com>
Reviewed-by: Harry Wentland <harry.wentland@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 1d8cfeb69daa863a70134b8ed6df8055c418a5b0)

drivers/gpu/drm/amd/amdgpu/amdgv_sriovmsg.h

index d80f01c0e754df462df564a5ee2bf1fa2f8df2a4..b02561f41b583ce098eb368790bd2c906a400dfa 100644 (file)
@@ -379,7 +379,7 @@ struct amd_sriov_msg_vf2pf_info {
        struct {
                uint8_t id;
                uint32_t version;
-       } ucode_info[AMD_SRIOV_MSG_RESERVE_UCODE];
+       } __packed ucode_info[AMD_SRIOV_MSG_RESERVE_UCODE];
        uint64_t dummy_page_addr;
        /* FB allocated for guest MES to record UQ info */
        uint64_t mes_info_addr;