summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/imagination
diff options
context:
space:
mode:
authorKees Cook <kees@kernel.org>2026-02-20 23:49:23 -0800
committerKees Cook <kees@kernel.org>2026-02-21 01:02:28 -0800
commit69050f8d6d075dc01af7a5f2f550a8067510366f (patch)
treebb265f94d9dfa7876c06a5d9f88673d496a15341 /drivers/gpu/drm/imagination
parentd39a1d7486d98668dd34aaa6732aad7977c45f5a (diff)
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to avoid scalar types (which need careful case-by-case checking), and instead replace kmalloc-family calls that allocate struct or union object instances: Single allocations: kmalloc(sizeof(TYPE), ...) are replaced with: kmalloc_obj(TYPE, ...) Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...) are replaced with: kmalloc_objs(TYPE, COUNT, ...) Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...) are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...) (where TYPE may also be *VAR) The resulting allocations no longer return "void *", instead returning "TYPE *". Signed-off-by: Kees Cook <kees@kernel.org>
Diffstat (limited to 'drivers/gpu/drm/imagination')
-rw-r--r--drivers/gpu/drm/imagination/pvr_ccb.c2
-rw-r--r--drivers/gpu/drm/imagination/pvr_context.c2
-rw-r--r--drivers/gpu/drm/imagination/pvr_drv.c2
-rw-r--r--drivers/gpu/drm/imagination/pvr_free_list.c4
-rw-r--r--drivers/gpu/drm/imagination/pvr_fw.c2
-rw-r--r--drivers/gpu/drm/imagination/pvr_fw_trace.c2
-rw-r--r--drivers/gpu/drm/imagination/pvr_gem.c2
-rw-r--r--drivers/gpu/drm/imagination/pvr_hwrt.c2
-rw-r--r--drivers/gpu/drm/imagination/pvr_job.c6
-rw-r--r--drivers/gpu/drm/imagination/pvr_mmu.c11
-rw-r--r--drivers/gpu/drm/imagination/pvr_power.c4
-rw-r--r--drivers/gpu/drm/imagination/pvr_queue.c4
-rw-r--r--drivers/gpu/drm/imagination/pvr_sync.c2
-rw-r--r--drivers/gpu/drm/imagination/pvr_vm.c12
14 files changed, 27 insertions, 30 deletions
diff --git a/drivers/gpu/drm/imagination/pvr_ccb.c b/drivers/gpu/drm/imagination/pvr_ccb.c
index 9294b4ba1de7..998b9ceb54ca 100644
--- a/drivers/gpu/drm/imagination/pvr_ccb.c
+++ b/drivers/gpu/drm/imagination/pvr_ccb.c
@@ -543,7 +543,7 @@ struct dma_fence *pvr_kccb_fence_alloc(void)
{
struct pvr_kccb_fence *kccb_fence;
- kccb_fence = kzalloc(sizeof(*kccb_fence), GFP_KERNEL);
+ kccb_fence = kzalloc_obj(*kccb_fence, GFP_KERNEL);
if (!kccb_fence)
return NULL;
diff --git a/drivers/gpu/drm/imagination/pvr_context.c b/drivers/gpu/drm/imagination/pvr_context.c
index 5edc3c01af72..1aa4f098f93d 100644
--- a/drivers/gpu/drm/imagination/pvr_context.c
+++ b/drivers/gpu/drm/imagination/pvr_context.c
@@ -292,7 +292,7 @@ int pvr_context_create(struct pvr_file *pvr_file, struct drm_pvr_ioctl_create_co
if (ctx_size < 0)
return ctx_size;
- ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ ctx = kzalloc_obj(*ctx, GFP_KERNEL);
if (!ctx)
return -ENOMEM;
diff --git a/drivers/gpu/drm/imagination/pvr_drv.c b/drivers/gpu/drm/imagination/pvr_drv.c
index 916b40ced7eb..b6171d10e8ac 100644
--- a/drivers/gpu/drm/imagination/pvr_drv.c
+++ b/drivers/gpu/drm/imagination/pvr_drv.c
@@ -1312,7 +1312,7 @@ pvr_drm_driver_open(struct drm_device *drm_dev, struct drm_file *file)
struct pvr_device *pvr_dev = to_pvr_device(drm_dev);
struct pvr_file *pvr_file;
- pvr_file = kzalloc(sizeof(*pvr_file), GFP_KERNEL);
+ pvr_file = kzalloc_obj(*pvr_file, GFP_KERNEL);
if (!pvr_file)
return -ENOMEM;
diff --git a/drivers/gpu/drm/imagination/pvr_free_list.c b/drivers/gpu/drm/imagination/pvr_free_list.c
index 5228e214491c..cfcfbd89052a 100644
--- a/drivers/gpu/drm/imagination/pvr_free_list.c
+++ b/drivers/gpu/drm/imagination/pvr_free_list.c
@@ -307,7 +307,7 @@ pvr_free_list_grow(struct pvr_free_list *free_list, u32 num_pages)
goto err_unlock;
}
- free_list_node = kzalloc(sizeof(*free_list_node), GFP_KERNEL);
+ free_list_node = kzalloc_obj(*free_list_node, GFP_KERNEL);
if (!free_list_node) {
err = -ENOMEM;
goto err_unlock;
@@ -415,7 +415,7 @@ pvr_free_list_create(struct pvr_file *pvr_file,
int err;
/* Create and fill out the kernel structure */
- free_list = kzalloc(sizeof(*free_list), GFP_KERNEL);
+ free_list = kzalloc_obj(*free_list, GFP_KERNEL);
if (!free_list)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_fw.c b/drivers/gpu/drm/imagination/pvr_fw.c
index 779a58fe6ee8..1cbbaff3e7bf 100644
--- a/drivers/gpu/drm/imagination/pvr_fw.c
+++ b/drivers/gpu/drm/imagination/pvr_fw.c
@@ -1272,7 +1272,7 @@ pvr_fw_object_create_and_map_common(struct pvr_device *pvr_dev, size_t size,
/* %DRM_PVR_BO_PM_FW_PROTECT is implicit for FW objects. */
flags |= DRM_PVR_BO_PM_FW_PROTECT;
- fw_obj = kzalloc(sizeof(*fw_obj), GFP_KERNEL);
+ fw_obj = kzalloc_obj(*fw_obj, GFP_KERNEL);
if (!fw_obj)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_fw_trace.c b/drivers/gpu/drm/imagination/pvr_fw_trace.c
index 673ee71276e9..f2c92a3b3a94 100644
--- a/drivers/gpu/drm/imagination/pvr_fw_trace.c
+++ b/drivers/gpu/drm/imagination/pvr_fw_trace.c
@@ -455,7 +455,7 @@ static int fw_trace_open(struct inode *inode, struct file *file)
struct pvr_fw_trace_seq_data *trace_seq_data;
int err;
- trace_seq_data = kzalloc(sizeof(*trace_seq_data), GFP_KERNEL);
+ trace_seq_data = kzalloc_obj(*trace_seq_data, GFP_KERNEL);
if (!trace_seq_data)
return -ENOMEM;
diff --git a/drivers/gpu/drm/imagination/pvr_gem.c b/drivers/gpu/drm/imagination/pvr_gem.c
index c07c9a915190..7a4e8ec92e1e 100644
--- a/drivers/gpu/drm/imagination/pvr_gem.c
+++ b/drivers/gpu/drm/imagination/pvr_gem.c
@@ -314,7 +314,7 @@ struct drm_gem_object *pvr_gem_create_object(struct drm_device *drm_dev, size_t
struct drm_gem_object *gem_obj;
struct pvr_gem_object *pvr_obj;
- pvr_obj = kzalloc(sizeof(*pvr_obj), GFP_KERNEL);
+ pvr_obj = kzalloc_obj(*pvr_obj, GFP_KERNEL);
if (!pvr_obj)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_hwrt.c b/drivers/gpu/drm/imagination/pvr_hwrt.c
index dc0c25fa1847..93ea3c8ee176 100644
--- a/drivers/gpu/drm/imagination/pvr_hwrt.c
+++ b/drivers/gpu/drm/imagination/pvr_hwrt.c
@@ -457,7 +457,7 @@ pvr_hwrt_dataset_create(struct pvr_file *pvr_file,
int err, i = 0;
/* Create and fill out the kernel structure */
- hwrt = kzalloc(sizeof(*hwrt), GFP_KERNEL);
+ hwrt = kzalloc_obj(*hwrt, GFP_KERNEL);
if (!hwrt)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_job.c b/drivers/gpu/drm/imagination/pvr_job.c
index 7564b0f21b42..a4e550505504 100644
--- a/drivers/gpu/drm/imagination/pvr_job.c
+++ b/drivers/gpu/drm/imagination/pvr_job.c
@@ -415,7 +415,7 @@ create_job(struct pvr_device *pvr_dev,
(args->hwrt.set_handle || args->hwrt.data_index))
return ERR_PTR(-EINVAL);
- job = kzalloc(sizeof(*job), GFP_KERNEL);
+ job = kzalloc_obj(*job, GFP_KERNEL);
if (!job)
return ERR_PTR(-ENOMEM);
@@ -718,8 +718,8 @@ pvr_submit_jobs(struct pvr_device *pvr_dev, struct pvr_file *pvr_file,
if (err)
return err;
- job_data = kvmalloc_array(args->jobs.count, sizeof(*job_data),
- GFP_KERNEL | __GFP_ZERO);
+ job_data = kvmalloc_objs(*job_data, args->jobs.count,
+ GFP_KERNEL | __GFP_ZERO);
if (!job_data) {
err = -ENOMEM;
goto out_free;
diff --git a/drivers/gpu/drm/imagination/pvr_mmu.c b/drivers/gpu/drm/imagination/pvr_mmu.c
index 450d476d183f..4d35879a344b 100644
--- a/drivers/gpu/drm/imagination/pvr_mmu.c
+++ b/drivers/gpu/drm/imagination/pvr_mmu.c
@@ -1828,7 +1828,7 @@ pvr_page_table_l0_get_or_insert(struct pvr_mmu_op_context *op_ctx,
*/
struct pvr_mmu_context *pvr_mmu_context_create(struct pvr_device *pvr_dev)
{
- struct pvr_mmu_context *ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
+ struct pvr_mmu_context *ctx = kzalloc_obj(*ctx, GFP_KERNEL);
int err;
if (!ctx)
@@ -1877,8 +1877,7 @@ pvr_page_table_l1_alloc(struct pvr_mmu_context *ctx)
{
int err;
- struct pvr_page_table_l1 *table =
- kzalloc(sizeof(*table), GFP_KERNEL);
+ struct pvr_page_table_l1 *table = kzalloc_obj(*table, GFP_KERNEL);
if (!table)
return ERR_PTR(-ENOMEM);
@@ -1906,8 +1905,7 @@ pvr_page_table_l0_alloc(struct pvr_mmu_context *ctx)
{
int err;
- struct pvr_page_table_l0 *table =
- kzalloc(sizeof(*table), GFP_KERNEL);
+ struct pvr_page_table_l0 *table = kzalloc_obj(*table, GFP_KERNEL);
if (!table)
return ERR_PTR(-ENOMEM);
@@ -2352,8 +2350,7 @@ pvr_mmu_op_context_create(struct pvr_mmu_context *ctx, struct sg_table *sgt,
{
int err;
- struct pvr_mmu_op_context *op_ctx =
- kzalloc(sizeof(*op_ctx), GFP_KERNEL);
+ struct pvr_mmu_op_context *op_ctx = kzalloc_obj(*op_ctx, GFP_KERNEL);
if (!op_ctx)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_power.c b/drivers/gpu/drm/imagination/pvr_power.c
index b9f801c63260..c70a62192d79 100644
--- a/drivers/gpu/drm/imagination/pvr_power.c
+++ b/drivers/gpu/drm/imagination/pvr_power.c
@@ -614,11 +614,11 @@ int pvr_power_domains_init(struct pvr_device *pvr_dev)
link_count = domain_count + (domain_count - 1);
- domain_devs = kcalloc(domain_count, sizeof(*domain_devs), GFP_KERNEL);
+ domain_devs = kzalloc_objs(*domain_devs, domain_count, GFP_KERNEL);
if (!domain_devs)
return -ENOMEM;
- domain_links = kcalloc(link_count, sizeof(*domain_links), GFP_KERNEL);
+ domain_links = kzalloc_objs(*domain_links, link_count, GFP_KERNEL);
if (!domain_links)
return -ENOMEM;
diff --git a/drivers/gpu/drm/imagination/pvr_queue.c b/drivers/gpu/drm/imagination/pvr_queue.c
index fc415dd0d7a7..12f759c17f93 100644
--- a/drivers/gpu/drm/imagination/pvr_queue.c
+++ b/drivers/gpu/drm/imagination/pvr_queue.c
@@ -249,7 +249,7 @@ pvr_queue_fence_alloc(void)
{
struct pvr_queue_fence *fence;
- fence = kzalloc(sizeof(*fence), GFP_KERNEL);
+ fence = kzalloc_obj(*fence, GFP_KERNEL);
if (!fence)
return NULL;
@@ -1266,7 +1266,7 @@ struct pvr_queue *pvr_queue_create(struct pvr_context *ctx,
if (ctx_state_size < 0)
return ERR_PTR(ctx_state_size);
- queue = kzalloc(sizeof(*queue), GFP_KERNEL);
+ queue = kzalloc_obj(*queue, GFP_KERNEL);
if (!queue)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_sync.c b/drivers/gpu/drm/imagination/pvr_sync.c
index 129f646d14ba..b5268c9b885b 100644
--- a/drivers/gpu/drm/imagination/pvr_sync.c
+++ b/drivers/gpu/drm/imagination/pvr_sync.c
@@ -64,7 +64,7 @@ pvr_sync_signal_array_add(struct xarray *array, struct drm_file *file, u32 handl
int err;
u32 id;
- sig_sync = kzalloc(sizeof(*sig_sync), GFP_KERNEL);
+ sig_sync = kzalloc_obj(*sig_sync, GFP_KERNEL);
if (!sig_sync)
return ERR_PTR(-ENOMEM);
diff --git a/drivers/gpu/drm/imagination/pvr_vm.c b/drivers/gpu/drm/imagination/pvr_vm.c
index 9a9ad4e82305..e482bfc00576 100644
--- a/drivers/gpu/drm/imagination/pvr_vm.c
+++ b/drivers/gpu/drm/imagination/pvr_vm.c
@@ -261,9 +261,9 @@ pvr_vm_bind_op_map_init(struct pvr_vm_bind_op *bind_op,
if (IS_ERR(bind_op->gpuvm_bo))
return PTR_ERR(bind_op->gpuvm_bo);
- bind_op->new_va = kzalloc(sizeof(*bind_op->new_va), GFP_KERNEL);
- bind_op->prev_va = kzalloc(sizeof(*bind_op->prev_va), GFP_KERNEL);
- bind_op->next_va = kzalloc(sizeof(*bind_op->next_va), GFP_KERNEL);
+ bind_op->new_va = kzalloc_obj(*bind_op->new_va, GFP_KERNEL);
+ bind_op->prev_va = kzalloc_obj(*bind_op->prev_va, GFP_KERNEL);
+ bind_op->next_va = kzalloc_obj(*bind_op->next_va, GFP_KERNEL);
if (!bind_op->new_va || !bind_op->prev_va || !bind_op->next_va) {
err = -ENOMEM;
goto err_bind_op_fini;
@@ -310,8 +310,8 @@ pvr_vm_bind_op_unmap_init(struct pvr_vm_bind_op *bind_op,
bind_op->type = PVR_VM_BIND_TYPE_UNMAP;
- bind_op->prev_va = kzalloc(sizeof(*bind_op->prev_va), GFP_KERNEL);
- bind_op->next_va = kzalloc(sizeof(*bind_op->next_va), GFP_KERNEL);
+ bind_op->prev_va = kzalloc_obj(*bind_op->prev_va, GFP_KERNEL);
+ bind_op->next_va = kzalloc_obj(*bind_op->next_va, GFP_KERNEL);
if (!bind_op->prev_va || !bind_op->next_va) {
err = -ENOMEM;
goto err_bind_op_fini;
@@ -565,7 +565,7 @@ pvr_vm_create_context(struct pvr_device *pvr_dev, bool is_userspace_context)
return ERR_PTR(-EINVAL);
}
- vm_ctx = kzalloc(sizeof(*vm_ctx), GFP_KERNEL);
+ vm_ctx = kzalloc_obj(*vm_ctx, GFP_KERNEL);
if (!vm_ctx)
return ERR_PTR(-ENOMEM);