On Fri, Sep 20, 2019 at 1:01 PM Michel Dänzer <michel@xxxxxxxxxxx> wrote: > > From: Michel Dänzer <mdaenzer@xxxxxxxxxx> > > Avoids a crash described in > https://gitlab.freedesktop.org/xorg/driver/xf86-video-amdgpu/merge_requests/43#note_223718 > > (Ported from amdgpu commit 5b8bc9fc505c551dcd9b0ed5ab835a49fa4f9fda) > > Signed-off-by: Michel Dänzer <mdaenzer@xxxxxxxxxx> Reviewed-by: Alex Deucher <alexander.deucher@xxxxxxx> > --- > src/radeon_kms.c | 10 +++++++++- > 1 file changed, 9 insertions(+), 1 deletion(-) > > diff --git a/src/radeon_kms.c b/src/radeon_kms.c > index 777fc14ee..107c1ce71 100644 > --- a/src/radeon_kms.c > +++ b/src/radeon_kms.c > @@ -2629,6 +2629,12 @@ void RADEONLeaveVT_KMS(ScrnInfoPtr pScrn) > unsigned w = 0, h = 0; > int i; > > + /* If we're called from CloseScreen, trying to clear the black > + * scanout BO will likely crash and burn > + */ > + if (!pScreen->GCperDepth[0]) > + goto hide_cursors; > + > /* Compute maximum scanout dimensions of active CRTCs */ > for (i = 0; i < xf86_config->num_crtc; i++) { > crtc = xf86_config->crtc[i]; > @@ -2701,8 +2707,10 @@ void RADEONLeaveVT_KMS(ScrnInfoPtr pScrn) > pScrn->displayWidth * info->pixel_bytes * pScrn->virtualY); > } > > - TimerSet(NULL, 0, 1000, cleanup_black_fb, pScreen); > + if (pScreen->GCperDepth[0]) > + TimerSet(NULL, 0, 1000, cleanup_black_fb, pScreen); > > + hide_cursors: > xf86_hide_cursors (pScrn); > > radeon_drop_drm_master(pScrn); > -- > 2.23.0 > > _______________________________________________ > amd-gfx mailing list > amd-gfx@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/amd-gfx _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx