• Thomas Hellstrom's avatar
    drm/ttm: Fix a theoretical race in ttm_bo_cleanup_refs() · b8e902f2
    Thomas Hellstrom authored
    In theory, that function could release the lru lock between
    checking for bo on ddestroy list and a successful reserve if the bo
    was already reserved, and the function was called with waiting reserves
    allowed.
    However, all current reservers of a bo on the ddestroy list would
    atomically take the bo off the list after a successful reserve so this
    race should not have been hit, so no need to backport for stable.
    
    This patch also fixes a case found by Maarten Lankhorst where
    ttm_mem_evict_first called with no_wait_gpu would incorrectly
    spin waiting for bo idle if trying to evict a busy buffer that
    also sits on the ddestroy list.
    Signed-off-by: default avatarThomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
    b8e902f2
ttm_bo.c 46.4 KB