-Wflex-array-member-not-at-end was introduced in GCC-14, and we are
getting ready to enable it, globally.

Move the conflicting declarations to the end of the corresponding
structures. Notice that `struct dev_pagemap` is a flexible structure,
this is a structure that contains a flexible-array member.

Fix 283 of the following type of warnings:
    283 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h:111:28: warning: structure 
containing a flexible array member is not at the end of another structure 
[-Wflex-array-member-not-at-end]

Signed-off-by: Gustavo A. R. Silva <[email protected]>
---
 drivers/gpu/drm/amd/amdgpu/amdgpu.h        | 8 +++++---
 drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h | 8 +++++---
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index ddd472e56f69..24f3e5cfbe5d 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1155,9 +1155,6 @@ struct amdgpu_device {
        /* for userq and VM fences */
        struct amdgpu_seq64             seq64;
 
-       /* KFD */
-       struct amdgpu_kfd_dev           kfd;
-
        /* UMC */
        struct amdgpu_umc               umc;
 
@@ -1320,6 +1317,11 @@ struct amdgpu_device {
        struct mutex                    userq_mutex;
        bool                            userq_halt_for_enforce_isolation;
        struct amdgpu_uid *uid_info;
+
+       /* KFD
+        * Must be last --ends in a flexible-array member.
+        */
+       struct amdgpu_kfd_dev           kfd;
 };
 
 static inline uint32_t amdgpu_ip_version(const struct amdgpu_device *adev,
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
index 33eb4826b58b..127927b16ee2 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.h
@@ -107,11 +107,13 @@ struct amdgpu_kfd_dev {
        bool init_complete;
        struct work_struct reset_work;
 
-       /* HMM page migration MEMORY_DEVICE_PRIVATE mapping */
-       struct dev_pagemap pgmap;
-
        /* Client for KFD BO GEM handle allocations */
        struct drm_client_dev client;
+
+       /* HMM page migration MEMORY_DEVICE_PRIVATE mapping
+        * Must be last --ends in a flexible-array member.
+        */
+       struct dev_pagemap pgmap;
 };
 
 enum kgd_engine_type {
-- 
2.43.0

Reply via email to