On 5/20/2025 4:27 AM, Tomeu Vizoso wrote:
-       version = rocket_pc_read(core, VERSION);
-       version += rocket_pc_read(core, VERSION_NUM) & 0xffff;
+       version = rocket_pc_readl(core, VERSION);
+       version += rocket_pc_readl(core, VERSION_NUM) & 0xffff;

This seems weird. Feels like an eariler patch introduced a "bug" and you are fixing it here. If so, then shouldn't the origional patch be updated?

+static int
+rocket_copy_tasks(struct drm_device *dev,
+                 struct drm_file *file_priv,
+                 struct drm_rocket_job *job,
+                 struct rocket_job *rjob)
+{
+       struct drm_rocket_task *tasks;
+       int ret = 0;
+       int i;
+
+       rjob->task_count = job->task_count;
+
+       if (!rjob->task_count)
+               return 0;
+
+       tasks = kvmalloc_array(rjob->task_count, sizeof(*tasks), GFP_KERNEL);
+       if (!tasks) {
+               ret = -ENOMEM;
+               drm_dbg(dev, "Failed to allocate incoming tasks\n");
+               goto fail;
+       }
+
+       if (copy_from_user(tasks,
+                          (void __user *)(uintptr_t)job->tasks,

u64_to_user_ptr() ?

Same thing down in rocket_ioctl_submit_job()


Reply via email to