Эх сурвалжийг харах

disp: msm: dp: Add null check after payload allocation

Adds null check for MST port and connector after payload
allocation. Prevents calling mst helper functions with
a null port or connector on a failed payload allocation.

Change-Id: I8e228bd1498b11b302371c1ad6d805d5f941667e
Signed-off-by: Nisarg Bhavsar <[email protected]>
Nisarg Bhavsar 2 жил өмнө
parent
commit
60c9dce746
1 өөрчлөгдсөн 19 нэмэгдсэн , 2 устгасан
  1. 19 2
      msm/dp/dp_mst_drm.c

+ 19 - 2
msm/dp/dp_mst_drm.c

@@ -658,7 +658,14 @@ static int _dp_mst_bridge_pre_enable_part1(struct dp_mst_bridge *dp_bridge)
 	}
 
 	drm_dp_mst_update_slots(mst_state, DP_CAP_ANSI_8B10B);
-	mst->mst_fw_cbs->update_payload_part1(&mst->mst_mgr, mst_state, payload);
+
+	rc = mst->mst_fw_cbs->update_payload_part1(&mst->mst_mgr,
+			mst_state, payload);
+	if (rc) {
+		DP_ERR("payload allocation failure for conn:%d\n", DP_MST_CONN_ID(dp_bridge));
+		goto end;
+	}
+
 #else
 	ret = mst->mst_fw_cbs->allocate_vcpi(&mst->mst_mgr, port, pbn, slots);
 	if (!ret) {
@@ -701,7 +708,17 @@ static void _dp_mst_bridge_pre_enable_part2(struct dp_mst_bridge *dp_bridge)
 	payload = drm_atomic_get_mst_payload_state(mst_state, port);
 
 	if (!payload) {
-		DP_ERR("mst bridge [%d] _pre enable part-2 failed, null payload\n",
+		DP_ERR("mst bridge [%d] _pre enable part-2 failed, null payload\n", dp_bridge->id);
+		return;
+	}
+
+	if (!payload->port) {
+		DP_ERR("mst bridge [%d] _pre enable part-2 failed, null port\n", dp_bridge->id);
+		return;
+	}
+
+	if (!payload->port->connector) {
+		DP_ERR("mst bridge [%d] _pre enable part-2 failed, null connector\n",
 				dp_bridge->id);
 		return;
 	}