After a connector is added to the drm_mode_config::connector_list, it's
visible to any in-kernel users looking up connectors via the above list.
Make sure that the connector is properly initialized before such
look-ups, by initializing the connector with
drm_connector_dynamic_register() - which doesn't add the connector to
the list - and registering it with drm_connector_dynamic_register() -
which adds the connector to the list - after the initialization is
complete.

Cc: Harry Wentland <harry.wentl...@amd.com>
Cc: Leo Li <sunpeng...@amd.com>
Cc: Wayne Lin <wayne....@amd.com>
Cc: Alex Deucher <alexander.deuc...@amd.com>
Cc: Lyude Paul <ly...@redhat.com>
Signed-off-by: Imre Deak <imre.d...@intel.com>
---
 drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
index 6e43594906130..d398bc74e6677 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
@@ -590,11 +590,12 @@ dm_dp_add_mst_connector(struct drm_dp_mst_topology_mgr 
*mgr,
        amdgpu_dm_set_mst_status(&aconnector->mst_status,
                        MST_PROBE, true);
 
-       if (drm_connector_init(
+       if (drm_connector_dynamic_init(
                dev,
                connector,
                &dm_dp_mst_connector_funcs,
-               DRM_MODE_CONNECTOR_DisplayPort)) {
+               DRM_MODE_CONNECTOR_DisplayPort,
+               NULL)) {
                kfree(aconnector);
                return NULL;
        }
-- 
2.44.2

Reply via email to