mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-23 06:14:42 +08:00
drm/i915/kvmgt: Use struct_size() helper
Make use of the struct_size() helper instead of an open-coded version in order to avoid any potential type mistakes, in particular in the context in which this code is being used. So, replace the following form: sizeof(*sparse) + (nr_areas * sizeof(*sparse->areas) with: struct_size(sparse, areas, sparse->nr_areas) and so on... Also, notice that variable size is unnecessary, hence it is removed. This code was detected with the help of Coccinelle. Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com> Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
This commit is contained in:
parent
e0e712fe42
commit
cd3e05836f
@ -1306,7 +1306,6 @@ static long intel_vgpu_ioctl(struct mdev_device *mdev, unsigned int cmd,
|
||||
unsigned int i;
|
||||
int ret;
|
||||
struct vfio_region_info_cap_sparse_mmap *sparse = NULL;
|
||||
size_t size;
|
||||
int nr_areas = 1;
|
||||
int cap_type_id;
|
||||
|
||||
@ -1349,9 +1348,8 @@ static long intel_vgpu_ioctl(struct mdev_device *mdev, unsigned int cmd,
|
||||
VFIO_REGION_INFO_FLAG_WRITE;
|
||||
info.size = gvt_aperture_sz(vgpu->gvt);
|
||||
|
||||
size = sizeof(*sparse) +
|
||||
(nr_areas * sizeof(*sparse->areas));
|
||||
sparse = kzalloc(size, GFP_KERNEL);
|
||||
sparse = kzalloc(struct_size(sparse, areas, nr_areas),
|
||||
GFP_KERNEL);
|
||||
if (!sparse)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -1416,9 +1414,9 @@ static long intel_vgpu_ioctl(struct mdev_device *mdev, unsigned int cmd,
|
||||
switch (cap_type_id) {
|
||||
case VFIO_REGION_INFO_CAP_SPARSE_MMAP:
|
||||
ret = vfio_info_add_capability(&caps,
|
||||
&sparse->header, sizeof(*sparse) +
|
||||
(sparse->nr_areas *
|
||||
sizeof(*sparse->areas)));
|
||||
&sparse->header,
|
||||
struct_size(sparse, areas,
|
||||
sparse->nr_areas));
|
||||
if (ret) {
|
||||
kfree(sparse);
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user