[PATCH] drm/amdgpu: always initialize job->base.sched

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Am 17.07.2018 um 09:16 schrieb Zhou, David(ChunMing):
> Acked-by: Chunming Zhou <david1.zhou at amd.com>, but I think it isn't a nice evaluation although there is comment in code.

Yeah, I didn't thought about the possibility that we need to free the 
job before it is submitted (in other words before the scheduler is 
determined).

Alternatively we could provide the adev manually to amdgpu_job_free() 
and amdgpu_job_free_resources().

Regards,
Christian.

>
>
> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf Of Christian K?nig
> Sent: Tuesday, July 17, 2018 3:05 PM
> To: amd-gfx at lists.freedesktop.org
> Subject: [PATCH] drm/amdgpu: always initialize job->base.sched
>
> Otherwise we can't clean up the job if we run into an error before it is pushed to the scheduler.
>
> Signed-off-by: Christian König <christian.koenig at amd.com>
> ---
>   drivers/gpu/drm/amd/amdgpu/amdgpu_job.c | 5 +++++
>   1 file changed, 5 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
> index 024efb7ea6d6..42a4764d728e 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_job.c
> @@ -54,6 +54,11 @@ int amdgpu_job_alloc(struct amdgpu_device *adev, unsigned num_ibs,
>   	if (!*job)
>   		return -ENOMEM;
>   
> +	/*
> +	 * Initialize the scheduler to at least some ring so that we always
> +	 * have a pointer to adev.
> +	 */
> +	(*job)->base.sched = &adev->rings[0]->sched;
>   	(*job)->vm = vm;
>   	(*job)->ibs = (void *)&(*job)[1];
>   	(*job)->num_ibs = num_ibs;
> --
> 2.14.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx



[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux