From: Michel Dänzer Date: Mon, 11 Sep 2017 08:09:17 +0000 (+0900) Subject: radeon: Only destroy fbdev framebuffer if it was initialized X-Git-Tag: v4.15-rc1~56^2~28^2~96 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=e97f12f359775de4fabfb507f836ebffa20f4986;p=users%2Fjedix%2Flinux-maple.git radeon: Only destroy fbdev framebuffer if it was initialized Fixes crash when trying to unload the radeon module before the fbdev framebuffer was initialized, which can happen since the DRM fbdev helper code supports deferred setup. Acked-by: Christian König Reviewed-by: Alex Deucher Signed-off-by: Michel Dänzer Signed-off-by: Alex Deucher --- diff --git a/drivers/gpu/drm/radeon/radeon_fb.c b/drivers/gpu/drm/radeon/radeon_fb.c index fd25361ac681..2fcf805d3a16 100644 --- a/drivers/gpu/drm/radeon/radeon_fb.c +++ b/drivers/gpu/drm/radeon/radeon_fb.c @@ -322,10 +322,10 @@ static int radeon_fbdev_destroy(struct drm_device *dev, struct radeon_fbdev *rfb if (rfb->obj) { radeonfb_destroy_pinned_object(rfb->obj); rfb->obj = NULL; + drm_framebuffer_unregister_private(&rfb->base); + drm_framebuffer_cleanup(&rfb->base); } drm_fb_helper_fini(&rfbdev->helper); - drm_framebuffer_unregister_private(&rfb->base); - drm_framebuffer_cleanup(&rfb->base); return 0; }