aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2017-09-11 04:09:17 -0400
committerAlex Deucher <alexander.deucher@amd.com>2017-09-13 12:10:12 -0400
commite97f12f359775de4fabfb507f836ebffa20f4986 (patch)
tree7ffe6d4de9b810551f7f0da34c478ae1de0c91be
parenta072c5f896beba806b4b867d478e1b90f94ba29b (diff)
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 <christian.koenig@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Michel Dänzer <michel.daenzer@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--drivers/gpu/drm/radeon/radeon_fb.c4
1 files changed, 2 insertions, 2 deletions
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
322 if (rfb->obj) { 322 if (rfb->obj) {
323 radeonfb_destroy_pinned_object(rfb->obj); 323 radeonfb_destroy_pinned_object(rfb->obj);
324 rfb->obj = NULL; 324 rfb->obj = NULL;
325 drm_framebuffer_unregister_private(&rfb->base);
326 drm_framebuffer_cleanup(&rfb->base);
325 } 327 }
326 drm_fb_helper_fini(&rfbdev->helper); 328 drm_fb_helper_fini(&rfbdev->helper);
327 drm_framebuffer_unregister_private(&rfb->base);
328 drm_framebuffer_cleanup(&rfb->base);
329 329
330 return 0; 330 return 0;
331} 331}