On Tue, Nov 3, 2015 at 3:43 AM, Christian König <deathsimple@xxxxxxxxxxx> wrote: > 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@xxxxxxx> as well. Split into two patches and applied. Thanks! Alex > > Regards, > Christian. > > > On 03.11.2015 03:33, Zhou, David(ChunMing) wrote: >> >> Thanks for catching. Reviewed-by: Chunming Zhou <david1.zhou@xxxxxxx> >> >> Regards, >> David Zhou >> >>> -----Original Message----- >>> From: dri-devel [mailto:dri-devel-bounces@xxxxxxxxxxxxxxxxxxxxx] On >>> Behalf >>> Of Dave Airlie >>> Sent: Tuesday, November 03, 2015 7:35 AM >>> To: dri-devel@xxxxxxxxxxxxxxxxxxxxx >>> Subject: [PATCH] drm/amdgpu: don't oops on failure to load >>> >>> From: Dave Airlie <airlied@xxxxxxxxxx> >>> >>> 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@xxxxxxxxxx> >>> --- >>> 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@xxxxxxxxxxxxxxxxxxxxx >>> http://lists.freedesktop.org/mailman/listinfo/dri-devel >> >> _______________________________________________ >> dri-devel mailing list >> dri-devel@xxxxxxxxxxxxxxxxxxxxx >> http://lists.freedesktop.org/mailman/listinfo/dri-devel > > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/dri-devel _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel