diff options
Diffstat (limited to 'common/recipes-kernel/linux/linux-yocto-4.14.71/0950-amdgpu-Only-destroy-fbdev-framebuffer-if-it-was-init.patch')
-rw-r--r-- | common/recipes-kernel/linux/linux-yocto-4.14.71/0950-amdgpu-Only-destroy-fbdev-framebuffer-if-it-was-init.patch | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/common/recipes-kernel/linux/linux-yocto-4.14.71/0950-amdgpu-Only-destroy-fbdev-framebuffer-if-it-was-init.patch b/common/recipes-kernel/linux/linux-yocto-4.14.71/0950-amdgpu-Only-destroy-fbdev-framebuffer-if-it-was-init.patch new file mode 100644 index 00000000..20007dcc --- /dev/null +++ b/common/recipes-kernel/linux/linux-yocto-4.14.71/0950-amdgpu-Only-destroy-fbdev-framebuffer-if-it-was-init.patch @@ -0,0 +1,40 @@ +From 91dca6dc0af933bf4fff609e407e9cee69c61e1f Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer@amd.com> +Date: Mon, 11 Sep 2017 17:04:41 +0900 +Subject: [PATCH 0950/4131] amdgpu: Only destroy fbdev framebuffer if it was + initialized +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +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> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c +index 4f3bf7d..90fa8e8 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fb.c +@@ -298,10 +298,10 @@ static int amdgpu_fbdev_destroy(struct drm_device *dev, struct amdgpu_fbdev *rfb + if (rfb->obj) { + amdgpufb_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; + } +-- +2.7.4 + |