summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrigham Campbell <me@brighamcampbell.com>2025-08-13 10:02:37 -0600
committerTomeu Vizoso <tomeu@tomeuvizoso.net>2025-09-01 12:11:28 +0200
commitce6b656b5d64d612e9fc1c495eba6a362051c2ca (patch)
treeba5eb43dd48aec4a60f7e71aba4b99ef4d93e5ac
parent503b0ed38ca60cfb5ba101517a680beebd38d377 (diff)
accel/rocket: Fix usages of kfree() and sizeof()
Replace usages of kfree() with kvfree() for pointers which were allocated using kvmalloc(), as required by the kernel memory management API. Use sizeof() on the type that a pointer references instead of the pointer itself. In this case, scheds and *scheds both happen to be pointers, so sizeof() will expand to the same value in either case, but using *scheds is more technically correct since scheds is an array of drm_gpu_scheduler *. Reported-by: kernel test robot <lkp@intel.com> Reported-by: Julia Lawall <julia.lawall@inria.fr> Closes: https://lore.kernel.org/r/202508120730.PLbjlKbI-lkp@intel.com/ Signed-off-by: Brigham Campbell <me@brighamcampbell.com> Signed-off-by: Tomeu Vizoso <tomeu@tomeuvizoso.net> Link: https://lore.kernel.org/r/20250813-rocket-free-fix-v1-1-51f00a7a1271@brighamcampbell.com Fixes: 0810d5ad88a1 ("accel/rocket: Add job submission IOCTL")
-rw-r--r--drivers/accel/rocket/rocket_job.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/accel/rocket/rocket_job.c b/drivers/accel/rocket/rocket_job.c
index 5d4afd692306..f6fe1a6d9264 100644
--- a/drivers/accel/rocket/rocket_job.c
+++ b/drivers/accel/rocket/rocket_job.c
@@ -222,7 +222,7 @@ static int rocket_job_push(struct rocket_job *job)
err_unlock:
drm_gem_unlock_reservations(bos, job->in_bo_count + job->out_bo_count, &acquire_ctx);
err:
- kfree(bos);
+ kvfree(bos);
return ret;
}
@@ -496,7 +496,8 @@ void rocket_job_fini(struct rocket_core *core)
int rocket_job_open(struct rocket_file_priv *rocket_priv)
{
struct rocket_device *rdev = rocket_priv->rdev;
- struct drm_gpu_scheduler **scheds = kmalloc_array(rdev->num_cores, sizeof(scheds),
+ struct drm_gpu_scheduler **scheds = kmalloc_array(rdev->num_cores,
+ sizeof(*scheds),
GFP_KERNEL);
unsigned int core;
int ret;
@@ -630,7 +631,7 @@ int rocket_ioctl_submit(struct drm_device *dev, void *data, struct drm_file *fil
rocket_ioctl_submit_job(dev, file, &jobs[i]);
exit:
- kfree(jobs);
+ kvfree(jobs);
return ret;
}