Messages in this thread | | | Date | Mon, 21 Nov 2016 17:37:53 +0800 | From | Boqun Feng <> | Subject | Re: [RFC][PATCH 7/7] kref: Implement using refcount_t |
| |
On Mon, Nov 21, 2016 at 10:02:23AM +0100, Peter Zijlstra wrote: > On Mon, Nov 21, 2016 at 04:44:28PM +0800, Boqun Feng wrote: > > On Fri, Nov 18, 2016 at 12:37:18PM +0100, Peter Zijlstra wrote: > > [snip] > > > + > > > +/* > > > + * Similar to atomic_inc(), will saturate at UINT_MAX and WARN. > > > + * > > > + * Provides no memory ordering, it is assumed the caller already has a > > > + * reference on the object, will WARN when this is not so. > > > + */ > > > +static inline void refcount_inc(refcount_t *r) > > > +{ > > > + unsigned int old, new, val = atomic_read(&r->refs); > > > + > > > + for (;;) { > > > + WARN(!val, "refcount_t: increment on 0; use-after-free.\n"); > > > + > > > > Do we want to put the address of @r into the WARN information? Which > > could help us locate the problematic object quickly. > > I explicitly didn't do that because printing kernel addresses is > generally frowned upon. Also, random heap addresses are just that, > random. In most cases the backtrace is more informative.
Fair enough ;-)
Regards, Boqun [unhandled content-type:application/pgp-signature] | |