浏览代码

amdgpu: Only destroy fbdev framebuffer if it was initialized

Fixes crash when trying to unload the amdgpu 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>
Michel Dänzer 8 年之前
父节点
当前提交
a072c5f896
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c

+ 2 - 2
drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c

@@ -303,10 +303,10 @@ static int amdgpu_fbdev_destroy(struct drm_device *dev, struct amdgpu_fbdev *rfb
 	if (rfb->obj) {
 	if (rfb->obj) {
 		amdgpufb_destroy_pinned_object(rfb->obj);
 		amdgpufb_destroy_pinned_object(rfb->obj);
 		rfb->obj = NULL;
 		rfb->obj = NULL;
+		drm_framebuffer_unregister_private(&rfb->base);
+		drm_framebuffer_cleanup(&rfb->base);
 	}
 	}
 	drm_fb_helper_fini(&rfbdev->helper);
 	drm_fb_helper_fini(&rfbdev->helper);
-	drm_framebuffer_unregister_private(&rfb->base);
-	drm_framebuffer_cleanup(&rfb->base);
 
 
 	return 0;
 	return 0;
 }
 }