Commit 1e6d36e1 authored by Gustavo A. R. Silva's avatar Gustavo A. R. Silva Committed by Alex Deucher
Browse files

drm/amdgpu/amdkfd: Avoid a couple hundred -Wflex-array-member-not-at-end warnings



-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.

struct dev_pagemap always has room for at least one range. amdgpu only
uses a single range. Therefore no change are needed to the allocation
of struct amdgpu_device.

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: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: default avatarFelix Kuehling <felix.kuehling@amd.com>
Reviewed-by: default avatarFelix Kuehling <felix.kuehling@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 1ee9d1a0
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -1149,9 +1149,6 @@ struct amdgpu_device {
	/* for userq and VM fences */
	struct amdgpu_seq64		seq64;

	/* KFD */
	struct amdgpu_kfd_dev		kfd;

	/* UMC */
	struct amdgpu_umc		umc;

@@ -1314,6 +1311,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,
+5 −3
Original line number Diff line number Diff line
@@ -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 {