Lines Matching refs:r
125 void refcount_warn_saturate(refcount_t *r, enum refcount_saturation_type t);
132 static inline void refcount_set(refcount_t *r, int n) in refcount_set() argument
134 atomic_set(&r->refs, n); in refcount_set()
157 static inline void refcount_set_release(refcount_t *r, int n) in refcount_set_release() argument
159 atomic_set_release(&r->refs, n); in refcount_set_release()
168 static inline unsigned int refcount_read(const refcount_t *r) in refcount_read() argument
170 return atomic_read(&r->refs); in refcount_read()
174 bool __refcount_add_not_zero(int i, refcount_t *r, int *oldp) in __refcount_add_not_zero() argument
176 int old = refcount_read(r); in __refcount_add_not_zero()
181 } while (!atomic_try_cmpxchg_relaxed(&r->refs, &old, old + i)); in __refcount_add_not_zero()
187 refcount_warn_saturate(r, REFCOUNT_ADD_NOT_ZERO_OVF); in __refcount_add_not_zero()
210 static inline __must_check bool refcount_add_not_zero(int i, refcount_t *r) in refcount_add_not_zero() argument
212 return __refcount_add_not_zero(i, r, NULL); in refcount_add_not_zero()
216 bool __refcount_add_not_zero_limited_acquire(int i, refcount_t *r, int *oldp, in __refcount_add_not_zero_limited_acquire() argument
219 int old = refcount_read(r); in __refcount_add_not_zero_limited_acquire()
230 } while (!atomic_try_cmpxchg_acquire(&r->refs, &old, old + i)); in __refcount_add_not_zero_limited_acquire()
236 refcount_warn_saturate(r, REFCOUNT_ADD_NOT_ZERO_OVF); in __refcount_add_not_zero_limited_acquire()
242 __refcount_inc_not_zero_limited_acquire(refcount_t *r, int *oldp, int limit) in __refcount_inc_not_zero_limited_acquire() argument
244 return __refcount_add_not_zero_limited_acquire(1, r, oldp, limit); in __refcount_inc_not_zero_limited_acquire()
248 bool __refcount_add_not_zero_acquire(int i, refcount_t *r, int *oldp) in __refcount_add_not_zero_acquire() argument
250 return __refcount_add_not_zero_limited_acquire(i, r, oldp, INT_MAX); in __refcount_add_not_zero_acquire()
275 static inline __must_check bool refcount_add_not_zero_acquire(int i, refcount_t *r) in refcount_add_not_zero_acquire() argument
277 return __refcount_add_not_zero_acquire(i, r, NULL); in refcount_add_not_zero_acquire()
281 void __refcount_add(int i, refcount_t *r, int *oldp) in __refcount_add() argument
283 int old = atomic_fetch_add_relaxed(i, &r->refs); in __refcount_add()
289 refcount_warn_saturate(r, REFCOUNT_ADD_UAF); in __refcount_add()
291 refcount_warn_saturate(r, REFCOUNT_ADD_OVF); in __refcount_add()
310 static inline void refcount_add(int i, refcount_t *r) in refcount_add() argument
312 __refcount_add(i, r, NULL); in refcount_add()
315 static inline __must_check bool __refcount_inc_not_zero(refcount_t *r, int *oldp) in __refcount_inc_not_zero() argument
317 return __refcount_add_not_zero(1, r, oldp); in __refcount_inc_not_zero()
333 static inline __must_check bool refcount_inc_not_zero(refcount_t *r) in refcount_inc_not_zero() argument
335 return __refcount_inc_not_zero(r, NULL); in refcount_inc_not_zero()
338 static inline __must_check bool __refcount_inc_not_zero_acquire(refcount_t *r, int *oldp) in __refcount_inc_not_zero_acquire() argument
340 return __refcount_add_not_zero_acquire(1, r, oldp); in __refcount_inc_not_zero_acquire()
359 static inline __must_check bool refcount_inc_not_zero_acquire(refcount_t *r) in refcount_inc_not_zero_acquire() argument
361 return __refcount_inc_not_zero_acquire(r, NULL); in refcount_inc_not_zero_acquire()
364 static inline void __refcount_inc(refcount_t *r, int *oldp) in __refcount_inc() argument
366 __refcount_add(1, r, oldp); in __refcount_inc()
381 static inline void refcount_inc(refcount_t *r) in refcount_inc() argument
383 __refcount_inc(r, NULL); in refcount_inc()
387 bool __refcount_sub_and_test(int i, refcount_t *r, int *oldp) in __refcount_sub_and_test() argument
389 int old = atomic_fetch_sub_release(i, &r->refs); in __refcount_sub_and_test()
400 refcount_warn_saturate(r, REFCOUNT_SUB_UAF); in __refcount_sub_and_test()
425 static inline __must_check bool refcount_sub_and_test(int i, refcount_t *r) in refcount_sub_and_test() argument
427 return __refcount_sub_and_test(i, r, NULL); in refcount_sub_and_test()
430 static inline __must_check bool __refcount_dec_and_test(refcount_t *r, int *oldp) in __refcount_dec_and_test() argument
432 return __refcount_sub_and_test(1, r, oldp); in __refcount_dec_and_test()
448 static inline __must_check bool refcount_dec_and_test(refcount_t *r) in refcount_dec_and_test() argument
450 return __refcount_dec_and_test(r, NULL); in refcount_dec_and_test()
453 static inline void __refcount_dec(refcount_t *r, int *oldp) in __refcount_dec() argument
455 int old = atomic_fetch_sub_release(1, &r->refs); in __refcount_dec()
461 refcount_warn_saturate(r, REFCOUNT_DEC_LEAK); in __refcount_dec()
474 static inline void refcount_dec(refcount_t *r) in refcount_dec() argument
476 __refcount_dec(r, NULL); in refcount_dec()
479 extern __must_check bool refcount_dec_if_one(refcount_t *r);
480 extern __must_check bool refcount_dec_not_one(refcount_t *r);
481 extern __must_check bool refcount_dec_and_mutex_lock(refcount_t *r, struct mutex *lock) __cond_acqu…
482 extern __must_check bool refcount_dec_and_lock(refcount_t *r, spinlock_t *lock) __cond_acquires(loc…
483 extern __must_check bool refcount_dec_and_lock_irqsave(refcount_t *r,