Boris Brezillon writes: > With CONFIG_REFCOUNT_FULL enabled, refcount_inc() complains when it's > passed a refcount object that has its counter set to 0. In this driver, > this is a valid use case since we want to increment ->usecnt only when > the BO object starts to be used by real HW components and this is > definitely not the case when the BO is created. > > Fix the problem by using refcount_inc_not_zero() instead of > refcount_inc() and fallback to refcount_set(1) when > refcount_inc_not_zero() returns false. Note that this 2-steps operation > is not racy here because the whole section is protected by a mutex > which guarantees that the counter does not change between the > refcount_inc_not_zero() and refcount_set() calls. If we're not following the model, and protecting the refcount by a mutex, shouldn't we just be using addition and subtraction instead of refcount's atomics?