• Imre Deak's avatar
    drm/mst: Avoid processing partially received up/down message transactions · 636c4c3e
    Imre Deak authored
    Currently we may process up/down message transactions containing
    uninitialized data. This can happen if there was an error during the
    reception of any message in the transaction, but we happened to receive
    the last message correctly with the end-of-message flag set.
    
    To avoid this abort the reception of the transaction when the first
    error is detected, rejecting any messages until a message with the
    start-of-message flag is received (which will start a new transaction).
    This is also what the DP 1.4 spec 2.11.8.2 calls for in this case.
    
    In addtion this also prevents receiving bogus transactions without the
    first message with the the start-of-message flag set.
    
    v2:
    - unchanged
    v3:
    - git add the part that actually skips messages after an error in
      drm_dp_sideband_msg_build()
    
    Cc: Dave Airlie <airlied@redhat.com>
    Cc: Lyude <lyude@redhat.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
    Reviewed-by: default avatarLyude <lyude@redhat.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/20170719134632.13366-1-imre.deak@intel.com
    636c4c3e
drm_dp_mst_topology.c 88 KB