Messages in this thread | | | Date | Tue, 23 Apr 2019 15:40:03 +0200 | From | Peter Zijlstra <> | Subject | Re: [PATCH] Documentation: atomic_t.txt: Explain ordering provided by smp_mb__{before,after}_atomic() |
| |
On Tue, Apr 23, 2019 at 06:30:10AM -0700, Paul E. McKenney wrote: > There are a great many that look like this: > > smp_mb__before_atomic(); > clear_bit(NFSD4_CLIENT_UPCALL_LOCK, &clp->cl_flags); > smp_mb__after_atomic();
Ooh, marvel at the comment describing the ordering there. Oh wait :-( So much for checkpatch.pl I suppose.
I think the first is a release order for the 'LOCK' bit and the second is because of wake_up_bit() being a shitty interface.
So maybe that should've been:
clear_bit_unlock(NFSD4_CLIENT_UPCALL_LOCK, &clp->cl_flags); smp_mb__after_atomic(); wake_up_bit(&clp->cl_flags, NFSD4_CLIENT_UPCALL_LOCK);
instead?
| |