On 28/03/22 5:55 pm, Melissa Wen wrote:
On 03/12, Harshit Mogalapalli wrote:
kvcalloc is same as kvmalloc_array + __GFP_ZERO.
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@xxxxxxxxxx>
---
drivers/gpu/drm/v3d/v3d_gem.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/gpu/drm/v3d/v3d_gem.c b/drivers/gpu/drm/v3d/v3d_gem.c
index c7ed2e1cbab6..f7d37228461e 100644
--- a/drivers/gpu/drm/v3d/v3d_gem.c
+++ b/drivers/gpu/drm/v3d/v3d_gem.c
@@ -308,9 +308,8 @@ v3d_lookup_bos(struct drm_device *dev,
return -EINVAL;
}
- job->bo = kvmalloc_array(job->bo_count,
- sizeof(struct drm_gem_cma_object *),
- GFP_KERNEL | __GFP_ZERO);
+ job->bo = kvcalloc(job->bo_count, sizeof(struct drm_gem_cma_object *),
+ GFP_KERNEL);
Hi Harshit,
Hi Melissa,
This change seems valid to me, but I believe, in this point, v3d should
move to use the DRM function `drm_gem_objects_lookup()`, and then your
change goes there, since drm_get_objects_lookup() has the same issue
you're pointing. What do you think?
Thanks for looking at the patch.
Yes, you are right, the issue is same there as well.
Few other similar instances in drm/ subsystem.
drivers/gpu/drm/drm_gem.c:700 drm_gem_objects_lookup() warn: Please
consider using kvcalloc instead
drivers/gpu/drm/ttm/ttm_tt.c:99 ttm_tt_alloc_page_directory() warn:
Please consider using kvcalloc instead
drivers/gpu/drm/ttm/ttm_tt.c:108 ttm_dma_tt_alloc_page_directory() warn:
Please consider using kvcalloc instead
drivers/gpu/drm/ttm/ttm_tt.c:121 ttm_sg_tt_alloc_page_directory() warn:
Please consider using kvcalloc instead
drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c:541 amdgpu_cs_parser_bos() warn:
Please consider using kvcalloc instead
drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c:152
svm_range_dma_map_dev() warn: Please consider using kvcalloc instead
drivers/gpu/drm/v3d/v3d_gem.c:311 v3d_lookup_bos() warn: Please consider
using kvcalloc instead
drivers/gpu/drm/vc4/vc4_gem.c:746 vc4_cl_lookup_bos() warn: Please
consider using kvcalloc instead
drivers/gpu/drm/lima/lima_gem.c:42 lima_heap_alloc() warn: Please
consider using kvcalloc instead
drivers/gpu/drm/panfrost/panfrost_drv.c:147 panfrost_lookup_bos() warn:
Please consider using kvcalloc instead
drivers/gpu/drm/panfrost/panfrost_mmu.c:452
panfrost_mmu_map_fault_addr() warn: Please consider using kvcalloc instead
drivers/gpu/drm/panfrost/panfrost_mmu.c:460
panfrost_mmu_map_fault_addr() warn: Please consider using kvcalloc instead
Tool Used: Smatch.
I already sent a patchset to replace steps in v3d_lookup_bos() by
drm_gem_objects_lookup(), as I mentioned. The patchset is here:
https://patchwork.freedesktop.org/series/101610/
Willing to review it? ^
Sorry Melissa, I am still a beginner, Can't review it.
Regards,
Harshit
Thanks,
Melissa
if (!job->bo) {
DRM_DEBUG("Failed to allocate validated BO pointers\n");
return -ENOMEM;
--
2.31.1