|
@@ -2848,6 +2848,9 @@ int drm_dp_mst_topology_mgr_init(struct drm_dp_mst_topology_mgr *mgr,
|
|
mgr->max_dpcd_transaction_bytes = max_dpcd_transaction_bytes;
|
|
mgr->max_dpcd_transaction_bytes = max_dpcd_transaction_bytes;
|
|
mgr->max_payloads = max_payloads;
|
|
mgr->max_payloads = max_payloads;
|
|
mgr->conn_base_id = conn_base_id;
|
|
mgr->conn_base_id = conn_base_id;
|
|
|
|
+ if (max_payloads + 1 > sizeof(mgr->payload_mask) * 8 ||
|
|
|
|
+ max_payloads + 1 > sizeof(mgr->vcpi_mask) * 8)
|
|
|
|
+ return -EINVAL;
|
|
mgr->payloads = kcalloc(max_payloads, sizeof(struct drm_dp_payload), GFP_KERNEL);
|
|
mgr->payloads = kcalloc(max_payloads, sizeof(struct drm_dp_payload), GFP_KERNEL);
|
|
if (!mgr->payloads)
|
|
if (!mgr->payloads)
|
|
return -ENOMEM;
|
|
return -ENOMEM;
|