Messages in this thread | | | Date | Fri, 2 Aug 2019 20:55:14 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH 5/6] lib/refcount: Improve performance of generic REFCOUNT_FULL code |
| |
On Fri, Aug 02, 2019 at 11:09:59AM +0100, Will Deacon wrote: > static inline void refcount_add(int i, refcount_t *r) > { > + int old = atomic_fetch_add_relaxed(i, &r->refs); > + > + WARN_ONCE(!old, "refcount_t: addition on 0; use-after-free.\n"); > + if (unlikely(old <= 0 || old + i <= 0)) { > + refcount_set(r, REFCOUNT_SATURATED); > + WARN_ONCE(1, "refcount_t: saturated; leaking memory.\n"); > + } > }
That will trigger both WARNs when !old.
| |