mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-28 09:54:31 -04:00
drm/amdgpu: Explicitly add a flexible array at the end of 'struct amdgpu_bo_list'
'struct amdgpu_bo_list' is really used as if it was ended by a flex array. So make it more explicit and add a 'struct amdgpu_bo_list_entry entries[]' field at the end of the structure. This way, struct_size() can be used when it is allocated. It is less verbose. Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Alex Deucher
parent
ac0ec1c7d1
commit
ff49bd2c74
@@ -75,7 +75,6 @@ int amdgpu_bo_list_create(struct amdgpu_device *adev, struct drm_file *filp,
|
||||
struct amdgpu_bo_list_entry *array;
|
||||
struct amdgpu_bo_list *list;
|
||||
uint64_t total_size = 0;
|
||||
size_t size;
|
||||
unsigned i;
|
||||
int r;
|
||||
|
||||
@@ -83,9 +82,7 @@ int amdgpu_bo_list_create(struct amdgpu_device *adev, struct drm_file *filp,
|
||||
/ sizeof(struct amdgpu_bo_list_entry))
|
||||
return -EINVAL;
|
||||
|
||||
size = sizeof(struct amdgpu_bo_list);
|
||||
size += num_entries * sizeof(struct amdgpu_bo_list_entry);
|
||||
list = kvmalloc(size, GFP_KERNEL);
|
||||
list = kvmalloc(struct_size(list, entries, num_entries), GFP_KERNEL);
|
||||
if (!list)
|
||||
return -ENOMEM;
|
||||
|
||||
|
||||
@@ -55,6 +55,8 @@ struct amdgpu_bo_list {
|
||||
/* Protect access during command submission.
|
||||
*/
|
||||
struct mutex bo_list_mutex;
|
||||
|
||||
struct amdgpu_bo_list_entry entries[];
|
||||
};
|
||||
|
||||
int amdgpu_bo_list_get(struct amdgpu_fpriv *fpriv, int id,
|
||||
|
||||
Reference in New Issue
Block a user