Author: mjg
Date: Sat Nov 11 09:34:11 2017
New Revision: 325706
URL: https://svnweb.freebsd.org/changeset/base/325706

Log:
  rwlock: use fcmpset for setting RW_LOCK_WRITE_SPINNER

Modified:
  head/sys/kern/kern_rwlock.c

Modified: head/sys/kern/kern_rwlock.c
==============================================================================
--- head/sys/kern/kern_rwlock.c Sat Nov 11 07:21:49 2017        (r325705)
+++ head/sys/kern/kern_rwlock.c Sat Nov 11 09:34:11 2017        (r325706)
@@ -929,9 +929,8 @@ __rw_wlock_hard(volatile uintptr_t *c, uintptr_t v, ui
                if ((v & RW_LOCK_READ) && RW_READERS(v) &&
                    spintries < rowner_retries) {
                        if (!(v & RW_LOCK_WRITE_SPINNER)) {
-                               if (!atomic_cmpset_ptr(&rw->rw_lock, v,
+                               if (!atomic_fcmpset_ptr(&rw->rw_lock, &v,
                                    v | RW_LOCK_WRITE_SPINNER)) {
-                                       v = RW_READ_VALUE(rw);
                                        continue;
                                }
                        }
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to