• Daniel Vetter's avatar
    drm/atomic: Don't overrun the connector array when hotplugging · f52b69f1
    Daniel Vetter authored
    Yet another fallout from not considering DP MST hotplug. With the
    previous patches we have stable indices, but it might still happen
    that a connector gets added between when we allocate the array and
    when we actually add a connector. Especially when we back off due to
    ww mutex contention or similar issues.
    
    So store the sizes of the arrays in struct drm_atomic_state and double
    check them. We don't really care about races except that we want to
    use a consistent value, so ACCESS_ONCE is all we need. And if we
    indeed notice that we'd overrun the array then just give up and
    restart the entire ioctl.
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
    Reviewed-by: default avatarRob Clark <robdclark@gmail.com>
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    f52b69f1
drm_atomic.c 19 KB