Unverified Commit 6eb6e5ac authored by Maíra Canal's avatar Maíra Canal
Browse files

drm/v3d: Release indirect CSD GEM reference on CPU job free



v3d_get_cpu_indirect_csd_params() takes a reference to the indirect BO via
drm_gem_object_lookup() and stashes it in cpu_job->indirect_csd.indirect,
but nothing on the CPU job teardown path ever drops that reference.

Drop the extra reference in v3d_cpu_job_free(). The NULL check covers ioctl
errors before the lookup ran and CPU job types other than
V3D_CPU_JOB_TYPE_INDIRECT_CSD, which leave the field zero-initialised.

Cc: stable@vger.kernel.org
Fixes: 18b8413b ("drm/v3d: Create a CPU job extension for a indirect CSD job")
Assisted-by: Claude:claude-opus-4.7
Reviewed-by: default avatarIago Toral Quiroga <itoral@igalia.com>
Link: https://patch.msgid.link/20260515-v3d-cpu-job-leaks-v1-2-7f147cbbf935@igalia.com


Signed-off-by: default avatarMaíra Canal <mcanal@igalia.com>
parent b0fe80c0
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -135,6 +135,9 @@ v3d_cpu_job_free(struct kref *ref)
	v3d_performance_query_info_free(&job->performance_query,
					job->performance_query.count);

	if (job->indirect_csd.indirect)
		drm_gem_object_put(job->indirect_csd.indirect);

	v3d_job_free(ref);
}