drm/mst: Avoid dereferencing a NULL mstb in drm_dp_mst_handle_up_req()
authorImre Deak <imre.deak@intel.com>
Wed, 19 Jul 2017 11:43:29 +0000 (14:43 +0300)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Thu, 20 Jul 2017 08:20:30 +0000 (10:20 +0200)
In case of an unknown broadcast message is sent mstb will remain unset,
so check for this.

Cc: Dave Airlie <airlied@redhat.com>
Cc: Lyude <lyude@redhat.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Imre Deak <imre.deak@intel.com>
Reviewed-by: Lyude <lyude@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Link: https://patchwork.freedesktop.org/patch/msgid/20170719114330.26540-3-imre.deak@intel.com
drivers/gpu/drm/drm_dp_mst_topology.c

index ce0e58442939b1efb24c4a9ccb27ba194a96dcfb..7a6201133eb977450ec9a8c0094c7207feca7805 100644 (file)
@@ -2324,7 +2324,9 @@ static int drm_dp_mst_handle_up_req(struct drm_dp_mst_topology_mgr *mgr)
                        DRM_DEBUG_KMS("Got RSN: pn: %d avail_pbn %d\n", msg.u.resource_stat.port_number, msg.u.resource_stat.available_pbn);
                }
 
-               drm_dp_put_mst_branch_device(mstb);
+               if (mstb)
+                       drm_dp_put_mst_branch_device(mstb);
+
                memset(&mgr->up_req_recv, 0, sizeof(struct drm_dp_sideband_msg_rx));
        }
        return ret;