On 2019-12-03 9:35 a.m., mikita.lipski@amd.com wrote:
From: David Francis David.Francis@amd.com
This field on drm_dp_mst_branch was never filled
It is initialized to zero when the port is kzallocced. When a port is added to the list, increment num_ports, and when a port is removed from the list, decrement num_ports.
v2: remember to decrement on port removal v3: don't explicitly init to 0
Reviewed-by: Lyude Paul lyude@redhat.com Reviewed-by: Harry Wentland harry.wentland@amd.com Signed-off-by: David Francis David.Francis@amd.com Signed-off-by: Mikita Lipski mikita.lipski@amd.com
drivers/gpu/drm/drm_dp_mst_topology.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/drm_dp_mst_topology.c b/drivers/gpu/drm/drm_dp_mst_topology.c index 06aae9b52e8a..d74b767d0fe1 100644 --- a/drivers/gpu/drm/drm_dp_mst_topology.c +++ b/drivers/gpu/drm/drm_dp_mst_topology.c @@ -2129,6 +2129,7 @@ drm_dp_mst_port_add_connector(struct drm_dp_mst_branch *mstb, build_mst_prop_path(mstb, port->port_num, proppath, sizeof(proppath)); port->connector = mgr->cbs->add_connector(mgr, port, proppath); if (!port->connector) {
ret = -ENOMEM; goto error; }mstb->num_ports--;
@@ -2256,6 +2257,7 @@ drm_dp_mst_handle_link_address_port(struct drm_dp_mst_branch *mstb, mutex_lock(&mgr->lock); drm_dp_mst_topology_get_port(port); list_add(&port->next, &mstb->ports);
mutex_unlock(&mgr->lock); }mstb->num_ports++;
Did you drop the num_ports-- when we do list_del() by accident?
See https://patchwork.freedesktop.org/patch/325600/
Harry