[PATCH] drm/amdgpu: don't oops on failure to load

Christian König deathsimple at vodafone.de
Tue Nov 3 00:43:37 PST 2015


We handle the scheduler and amdgpu as two different components (the 
scheduler could be used by other drivers as well). So would be nice to 
have two patches for this.

But that's only nice to have, either way patch is Reviewed-by: Christian 
König <christian.koenig at amd.com> as well.

Regards,
Christian.

On 03.11.2015 03:33, Zhou, David(ChunMing) wrote:
> Thanks for catching. Reviewed-by: Chunming Zhou <david1.zhou at amd.com>
>
> Regards,
> David Zhou
>
>> -----Original Message-----
>> From: dri-devel [mailto:dri-devel-bounces at lists.freedesktop.org] On Behalf
>> Of Dave Airlie
>> Sent: Tuesday, November 03, 2015 7:35 AM
>> To: dri-devel at lists.freedesktop.org
>> Subject: [PATCH] drm/amdgpu: don't oops on failure to load
>>
>> From: Dave Airlie <airlied at redhat.com>
>>
>> In two places amdgpu tries to tear down something it hasn't initalised when
>> failing. This is what happens when you enable experimental support on topaz
>> which then fails in ring init.
>>
>> This patch allows it to fail cleanly.
>>
>> Signed-off-by: Dave Airlie <airlied at redhat.com>
>> ---
>>   drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c       | 3 +++
>>   drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 3 ++-
>>   2 files changed, 5 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
>> b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
>> index e0b80cc..fec65f0 100644
>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ctx.c
>> @@ -69,6 +69,9 @@ void amdgpu_ctx_fini(struct amdgpu_ctx *ctx)
>>   	struct amdgpu_device *adev = ctx->adev;
>>   	unsigned i, j;
>>
>> +	if (!adev)
>> +		return;
>> +
>>   	for (i = 0; i < AMDGPU_MAX_RINGS; ++i)
>>   		for (j = 0; j < AMDGPU_CTX_MAX_CS_PENDING; ++j)
>>   			fence_put(ctx->rings[i].fences[j]);
>> diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
>> b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
>> index 7fa1d7a..d3b9eb7 100644
>> --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
>> +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c
>> @@ -462,5 +462,6 @@ int amd_sched_init(struct amd_gpu_scheduler
>> *sched,
>>    */
>>   void amd_sched_fini(struct amd_gpu_scheduler *sched)  {
>> -	kthread_stop(sched->thread);
>> +	if (sched->thread)
>> +		kthread_stop(sched->thread);
>>   }
>> --
>> 2.5.0
>>
>> _______________________________________________
>> dri-devel mailing list
>> dri-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/dri-devel
> _______________________________________________
> dri-devel mailing list
> dri-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/dri-devel



More information about the dri-devel mailing list