aboutsummaryrefslogtreecommitdiffstats
path: root/common/recipes-kernel/linux/files/0655-drm-amd-dal-Guard-against-seg-fault-when-register-co.patch
blob: d4b9e1f5356ec64ade633b9cc4bdc454a25724fb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
From 522ba5e07873da08707873583df040aed9b3af17 Mon Sep 17 00:00:00 2001
From: Eric Yang <eric.yang2@amd.com>
Date: Wed, 30 Dec 2015 14:27:55 -0500
Subject: [PATCH 0655/1110] drm/amd/dal: Guard against seg fault when register
 connector before fbdev init

Registration of MST connectors happen on workqueue, if it is scheduled before we hit
fbdev init, we will segfault. Simply check for NULL inside the critical region will
resolve this, since the fbdev init function will add missing connectors anyway.

Signed-off-by: Eric Yang <eric.yang2@amd.com>
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Acked-by: Harry Wentland <Harry.Wentland@amd.com>
---
 drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c
index f976409..e7b675e 100644
--- a/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c
+++ b/drivers/gpu/drm/amd/dal/amdgpu_dm/amdgpu_dm_mst_types.c
@@ -371,7 +371,11 @@ static void dm_dp_mst_register_connector(struct drm_connector *connector)
 	struct amdgpu_device *adev = dev->dev_private;
 
 	drm_modeset_lock_all(dev);
-	drm_fb_helper_add_one_connector(&adev->mode_info.rfbdev->helper, connector);
+	if (adev->mode_info.rfbdev)
+		drm_fb_helper_add_one_connector(&adev->mode_info.rfbdev->helper, connector);
+	else
+		DRM_ERROR("adev->mode_info.rfbdev is NULL\n");
+
 	drm_modeset_unlock_all(dev);
 
 	drm_connector_register(connector);
-- 
2.7.4