atomic_add_unless
if (atomic_add_unless(&prange->queue_refcount, -1, 0)) {
atomic_add_unless(&pchild->queue_refcount, -1, 0);
if (atomic_add_unless(v, -1, 1))
if (atomic_add_unless(&obj->mm.shrink_pin, 1, 0))
if (atomic_add_unless(&obj->mm.shrink_pin, -1, 1))
if (atomic_add_unless(&ppgtt->pin_count, 1, 0))
if (likely(!atomic_add_unless(&ce->pin_count, 1, 0))) {
while (!atomic_add_unless(&ce->pin_count, -1, 1)) {
if (atomic_add_unless(&pt->used, -1, 1))
if (atomic_add_unless(&tl->pin_count, 1, 0))
if (atomic_add_unless(&tl->active_count, 1, 0))
if (atomic_add_unless(&tl->active_count, -1, 1))
if (atomic_add_unless(&ce->guc_id.ref, 1, 0))
if (atomic_add_unless(&ref->count, -1, 1))
if (atomic_add_unless(&ref->count, -1, 1))
return atomic_add_unless(&ref->count, 1, 0);
if (atomic_add_unless(&vma->pages_count, 1, 0))
if (atomic_add_unless(&vma->pages_count, -1, 1))
if (atomic_add_unless(&wf->count, -1, 1))
if (unlikely(!atomic_add_unless(&wf->count, -1, 1)))
#define atomic_inc_not_zero(v) atomic_add_unless((v), 1, 0)
if (!atomic_add_unless(&kref->refcount, -1, 1)) {
if (!atomic_add_unless(&kref->refcount, -1, 1)) {
if (atomic_add_unless(v, -1, 1))