Re: [PATCH] locking/refcount: add sparse annotations to dec-and-lock functions

From: Kees Cook
Date: Mon Dec 30 2019 - 13:43:26 EST


On Sat, Dec 28, 2019 at 12:49:18PM +0100, Peter Zijlstra wrote:
> On Thu, Dec 26, 2019 at 09:29:22AM -0600, Eric Biggers wrote:
> > From: Eric Biggers <ebiggers@xxxxxxxxxx>
> >
> > Wrap refcount_dec_and_lock() and refcount_dec_and_lock_irqsave() with
> > macros using __cond_lock() so that 'sparse' doesn't report warnings
> > about unbalanced locking when using them.
> >
> > This is the same thing that's done for their atomic_t equivalents.
> >
> > Don't annotate refcount_dec_and_mutex_lock(), because mutexes don't
> > currently have sparse annotations.
>
> I so f'ing hate that __cond_lock() crap. Previously I've suggested
> fixing sparse instead of making such an atrocious trainwreck of the
> code.

Ew, I never noticed these before. That is pretty ugly. Can't __acquire()
be used directly in the functions instead of building the nasty
wrappers?

--
Kees Cook