• Nathan Chancellor's avatar
    drm/scheduler: Simplify spsc_queue_count check in drm_sched_entity_select_rq · c1f0320e
    Nathan Chancellor authored
    Clang generates a warning when it sees a logical not followed by a
    conditional operator like ==, >, or <.
    
    drivers/gpu/drm/scheduler/sched_entity.c:470:6: warning: logical not is
    only applied to the left hand side of this comparison
    [-Wlogical-not-parentheses]
            if (!spsc_queue_count(&entity->job_queue) == 0 ||
                ^                                     ~~
    drivers/gpu/drm/scheduler/sched_entity.c:470:6: note: add parentheses
    after the '!' to evaluate the comparison first
            if (!spsc_queue_count(&entity->job_queue) == 0 ||
                ^
                 (                                        )
    drivers/gpu/drm/scheduler/sched_entity.c:470:6: note: add parentheses
    around left hand side expression to silence this warning
            if (!spsc_queue_count(&entity->job_queue) == 0 ||
                ^
                (                                    )
    1 warning generated.
    
    It assumes the author might have made a mistake in their logic:
    
    if (!a == b) -> if (!(a == b))
    
    Sometimes that is the case; other times, it's just a super convoluted
    way of saying 'if (a)' when b = 0:
    
    if (!1 == 0) -> if (0 == 0) -> if (true)
    
    Alternatively:
    
    if (!1 == 0) -> if (!!1) -> if (1)
    
    Simplify this comparison so that Clang doesn't complain.
    
    Fixes: 35e160e7 ("drm/scheduler: change entities rq even earlier")
    Signed-off-by: default avatarNathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
    Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
    c1f0320e
sched_entity.c 14.2 KB