• Ramalingam C's avatar
    drm/i915: Fixing mutex deadlock window at eDP DRRS · 3954e733
    Ramalingam C authored
    In invalidate and flush functions of eDP DRRS, if deferred downclock
    work starts execution at a time window between acquiring the drrs
    mutex and cancellation of the deferred work
    (intel_edp_drrs_downclock_work), then deferred work will find
    drrs mutex locked and wait for the same.
    
    Meanwhile the function that acquired mutex drrs invalidate/flush will
    wait for the completion of the deferred work before releasing the mutex.
    Thats a deadlock.
    
    To avoid such deadlock scenario, this change cancels the deferred work
    before acquiring the mutex at invalidate and flush functions.
    Signed-off-by: default avatarRamalingam C <ramalingam.c@intel.com>
    Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
    3954e733
intel_dp.c 154 KB