On 9/8/20 10:27 PM, David Miller wrote: > From: Alex Elder <el...@linaro.org> > Date: Tue, 8 Sep 2020 19:21:23 -0500 > >> We take a single IPA clock reference to keep the clock running >> until we get a system suspend operation. When a system suspend >> request arrives, we drop that reference, and if that's the last >> reference (likely) we'll proceed with suspending endpoints and >> disabling the IPA core clock and interconnects. >> >> In most places we simply set the reference count to 0 or 1 >> atomically. Instead--primarily to catch coding errors--use an >> atomic exchange to update the reference count value, and report >> an error in the event the previous value was unexpected. >> >> In a few cases it's not hard to see that the error message should >> never be reported. Report them anyway, but add some excitement >> to the message by ending it with an exclamation point. >> >> Signed-off-by: Alex Elder <el...@linaro.org> > > Please use refcount_t if you're wanting to validate things like > this.
There is exactly one reference here; the "reference" is essentially a Boolean flag. So the value is always either 0 or 1. I can use refcount_dec_if_one() for the 1->0 transition, but I'm not sure how I can do the 0->1 transition with refcount_t. I admit I might be missing something. Would you like me to add refcount_inc_if_zero()? Otherwise would you prefer a different naming convention to use for this Boolean "reference count"? Thanks. -Alex > > Thank you. >