]> www.infradead.org Git - users/hch/misc.git/commitdiff
accel/rocket: Fix usages of kfree() and sizeof()
authorBrigham Campbell <me@brighamcampbell.com>
Wed, 13 Aug 2025 16:02:37 +0000 (10:02 -0600)
committerTomeu Vizoso <tomeu@tomeuvizoso.net>
Mon, 1 Sep 2025 10:11:28 +0000 (12:11 +0200)
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")
drivers/accel/rocket/rocket_job.c

index 5d4afd69230623215e3105da7153d2d010636d52..f6fe1a6d9264b7508a3adc03248e5a704c68c4f0 100644 (file)
@@ -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;
 }