File tree Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -4069,6 +4069,7 @@ static int drm_dp_mst_handle_up_req(struct drm_dp_mst_topology_mgr *mgr)
4069
4069
if (up_req -> msg .req_type == DP_CONNECTION_STATUS_NOTIFY ) {
4070
4070
const struct drm_dp_connection_status_notify * conn_stat =
4071
4071
& up_req -> msg .u .conn_stat ;
4072
+ bool handle_csn ;
4072
4073
4073
4074
drm_dbg_kms (mgr -> dev , "Got CSN: pn: %d ldps:%d ddps: %d mcs: %d ip: %d pdt: %d\n" ,
4074
4075
conn_stat -> port_number ,
@@ -4077,6 +4078,16 @@ static int drm_dp_mst_handle_up_req(struct drm_dp_mst_topology_mgr *mgr)
4077
4078
conn_stat -> message_capability_status ,
4078
4079
conn_stat -> input_port ,
4079
4080
conn_stat -> peer_device_type );
4081
+
4082
+ mutex_lock (& mgr -> probe_lock );
4083
+ handle_csn = mgr -> mst_primary -> link_address_sent ;
4084
+ mutex_unlock (& mgr -> probe_lock );
4085
+
4086
+ if (!handle_csn ) {
4087
+ drm_dbg_kms (mgr -> dev , "Got CSN before finish topology probing. Skip it." );
4088
+ kfree (up_req );
4089
+ goto out ;
4090
+ }
4080
4091
} else if (up_req -> msg .req_type == DP_RESOURCE_STATUS_NOTIFY ) {
4081
4092
const struct drm_dp_resource_status_notify * res_stat =
4082
4093
& up_req -> msg .u .resource_stat ;
You can’t perform that action at this time.
0 commit comments