Messages in this thread Patch in this message | | | Subject | Re: [PATCH] futex: Ensure get_futex_key_refs() always implies a barrier | From | Davidlohr Bueso <> | Date | Sat, 18 Oct 2014 13:19:50 -0700 |
| |
On Sat, 2014-10-18 at 14:32 -0500, Darren Hart wrote: > Which is not incomplete (lacking the explicit smp_mb()) added by this > patch. Perhaps the MB implementation of get_futex_key_refs() need not be > explicitly enumerated here?
Agreed, how about this:
diff --git a/kernel/futex.c b/kernel/futex.c index 21f7e41..7a0805a 100644 --- a/kernel/futex.c +++ b/kernel/futex.c @@ -143,9 +143,8 @@ * * Where (A) orders the waiters increment and the futex value read through * atomic operations (see hb_waiters_inc) and where (B) orders the write - * to futex and the waiters read -- this is done by the barriers in - * get_futex_key_refs(), through either ihold or atomic_inc, depending on the - * futex type. + * to futex and the waiters read -- this is done by the barriers for both + * shared and private futexes in get_futex_key_refs(). * * This yields the following case (where X:=waiters, Y:=futex): *
| |