All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <57F5181F.60202@hpe.com>

diff --git a/a/1.txt b/N1/1.txt
index dcca812..a526e41 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -134,9 +134,9 @@ osq_node);
 +static __always_inline int
 +_atomic_cmpxchg_(const enum mbtype barrier, atomic_t *v, int old, int new)
 +{
-+    if (barrier == acquire)
++    if (barrier = acquire)
 +        return atomic_cmpxchg_acquire(v, old, new);
-+    else if (barrier == release)
++    else if (barrier = release)
 +        return atomic_cmpxchg_release(v, old, new);
 +    else
 +        return atomic_cmpxchg_relaxed(v, old, new);
@@ -159,9 +159,9 @@ osq_node);
 @@ -50,7 +68,7 @@ osq_wait_next(struct optimistic_spin_queue *lock,
 
       for (;;) {
-          if (atomic_read(&lock->tail) == curr &&
--            atomic_cmpxchg_acquire(&lock->tail, curr, old) == curr) {
-+           _atomic_cmpxchg_(barrier, &lock->tail, curr, old) == curr) {
+          if (atomic_read(&lock->tail) = curr &&
+-            atomic_cmpxchg_acquire(&lock->tail, curr, old) = curr) {
++           _atomic_cmpxchg_(barrier, &lock->tail, curr, old) = curr) {
               /*
                * We were the last queued, we moved @lock back. @prev
                * will now observe @lock and will complete its
@@ -170,9 +170,9 @@ osq_node);
            */
           if (node->next) {
 -            next = xchg(&node->next, NULL);
-+            if (barrier == acquire)
++            if (barrier = acquire)
 +                next = xchg_acquire(&node->next, NULL);
-+            else if (barrier == release)
++            else if (barrier = release)
 +                next = xchg_release(&node->next, NULL);
 +            else
 +                next = xchg_relaxed(&node->next, NULL);
@@ -202,7 +202,7 @@ fails.
 +     * Add an acquire memory barrier, if necessary, for pairing with the
 +     * release barrier in unlock.
 +     */
-+    if (barrier == acquire)
++    if (barrier = acquire)
 +        smp_acquire__after_ctrl_dep();
       return true;
 
@@ -210,9 +210,9 @@ fails.
 @@ -137,7 +171,7 @@ unqueue:
 
       for (;;) {
-          if (prev->next == node &&
--            cmpxchg(&prev->next, node, NULL) == node)
-+            cmpxchg_relaxed(&prev->next, node, NULL) == node)
+          if (prev->next = node &&
+-            cmpxchg(&prev->next, node, NULL) = node)
++            cmpxchg_relaxed(&prev->next, node, NULL) = node)
               break;
 
           /*
@@ -240,9 +240,9 @@ fails.
        * Fast path for the uncontended case.
        */
 -    if (likely(atomic_cmpxchg_release(&lock->tail, curr,
--                      OSQ_UNLOCKED_VAL) == curr))
+-                      OSQ_UNLOCKED_VAL) = curr))
 +    if (likely(_atomic_cmpxchg_(barrier, &lock->tail, curr,
-+                    OSQ_UNLOCKED_VAL) == curr))
++                    OSQ_UNLOCKED_VAL) = curr))
           return;
 
       /*
@@ -264,7 +264,7 @@ fails.
 -    next = osq_wait_next(lock, node, NULL);
 -    if (next)
 +unlock:
-+    if (barrier == release)
++    if (barrier = release)
 +        smp_store_release(&next->locked, 1);
 +    else
           WRITE_ONCE(next->locked, 1);
diff --git a/a/content_digest b/N1/content_digest
index c11441c..1afc3c0 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -4,7 +4,7 @@
  "ref\057F4EFCA.6050503@hpe.com\0"
  "From\0Waiman Long <waiman.long@hpe.com>\0"
  "Subject\0Re: [RFC PATCH-tip v4 01/10] locking/osq: Make lock/unlock proper acquire/release barrier\0"
- "Date\0Wed, 5 Oct 2016 11:11:27 -0400\0"
+ "Date\0Wed, 05 Oct 2016 15:11:27 +0000\0"
  "To\0Davidlohr Bueso <dave@stgolabs.net>\0"
  "Cc\0Peter Zijlstra <peterz@infradead.org>"
   Ingo Molnar <mingo@redhat.com>
@@ -158,9 +158,9 @@
  "+static __always_inline int\n"
  "+_atomic_cmpxchg_(const enum mbtype barrier, atomic_t *v, int old, int new)\n"
  "+{\n"
- "+    if (barrier == acquire)\n"
+ "+    if (barrier = acquire)\n"
  "+        return atomic_cmpxchg_acquire(v, old, new);\n"
- "+    else if (barrier == release)\n"
+ "+    else if (barrier = release)\n"
  "+        return atomic_cmpxchg_release(v, old, new);\n"
  "+    else\n"
  "+        return atomic_cmpxchg_relaxed(v, old, new);\n"
@@ -183,9 +183,9 @@
  "@@ -50,7 +68,7 @@ osq_wait_next(struct optimistic_spin_queue *lock,\n"
  "\n"
  "      for (;;) {\n"
- "          if (atomic_read(&lock->tail) == curr &&\n"
- "-            atomic_cmpxchg_acquire(&lock->tail, curr, old) == curr) {\n"
- "+           _atomic_cmpxchg_(barrier, &lock->tail, curr, old) == curr) {\n"
+ "          if (atomic_read(&lock->tail) = curr &&\n"
+ "-            atomic_cmpxchg_acquire(&lock->tail, curr, old) = curr) {\n"
+ "+           _atomic_cmpxchg_(barrier, &lock->tail, curr, old) = curr) {\n"
  "              /*\n"
  "               * We were the last queued, we moved @lock back. @prev\n"
  "               * will now observe @lock and will complete its\n"
@@ -194,9 +194,9 @@
  "           */\n"
  "          if (node->next) {\n"
  "-            next = xchg(&node->next, NULL);\n"
- "+            if (barrier == acquire)\n"
+ "+            if (barrier = acquire)\n"
  "+                next = xchg_acquire(&node->next, NULL);\n"
- "+            else if (barrier == release)\n"
+ "+            else if (barrier = release)\n"
  "+                next = xchg_release(&node->next, NULL);\n"
  "+            else\n"
  "+                next = xchg_relaxed(&node->next, NULL);\n"
@@ -226,7 +226,7 @@
  "+     * Add an acquire memory barrier, if necessary, for pairing with the\n"
  "+     * release barrier in unlock.\n"
  "+     */\n"
- "+    if (barrier == acquire)\n"
+ "+    if (barrier = acquire)\n"
  "+        smp_acquire__after_ctrl_dep();\n"
  "      return true;\n"
  "\n"
@@ -234,9 +234,9 @@
  "@@ -137,7 +171,7 @@ unqueue:\n"
  "\n"
  "      for (;;) {\n"
- "          if (prev->next == node &&\n"
- "-            cmpxchg(&prev->next, node, NULL) == node)\n"
- "+            cmpxchg_relaxed(&prev->next, node, NULL) == node)\n"
+ "          if (prev->next = node &&\n"
+ "-            cmpxchg(&prev->next, node, NULL) = node)\n"
+ "+            cmpxchg_relaxed(&prev->next, node, NULL) = node)\n"
  "              break;\n"
  "\n"
  "          /*\n"
@@ -264,9 +264,9 @@
  "       * Fast path for the uncontended case.\n"
  "       */\n"
  "-    if (likely(atomic_cmpxchg_release(&lock->tail, curr,\n"
- "-                      OSQ_UNLOCKED_VAL) == curr))\n"
+ "-                      OSQ_UNLOCKED_VAL) = curr))\n"
  "+    if (likely(_atomic_cmpxchg_(barrier, &lock->tail, curr,\n"
- "+                    OSQ_UNLOCKED_VAL) == curr))\n"
+ "+                    OSQ_UNLOCKED_VAL) = curr))\n"
  "          return;\n"
  "\n"
  "      /*\n"
@@ -288,7 +288,7 @@
  "-    next = osq_wait_next(lock, node, NULL);\n"
  "-    if (next)\n"
  "+unlock:\n"
- "+    if (barrier == release)\n"
+ "+    if (barrier = release)\n"
  "+        smp_store_release(&next->locked, 1);\n"
  "+    else\n"
  "          WRITE_ONCE(next->locked, 1);\n"
@@ -340,4 +340,4 @@
  "-- \n"
  1.7.1
 
-b956cf42b30825096f8691b4631d157d71edb7f4b18adeb78e8ff3cb8f465e87
+3676cff44359b75a6ab94571154eeb8ddcce0f1503cf314cd794a54b2e259c8a

diff --git a/a/content_digest b/N2/content_digest
index c11441c..f407098 100644
--- a/a/content_digest
+++ b/N2/content_digest
@@ -8,13 +8,13 @@
  "To\0Davidlohr Bueso <dave@stgolabs.net>\0"
  "Cc\0Peter Zijlstra <peterz@infradead.org>"
   Ingo Molnar <mingo@redhat.com>
-  linux-kernel@vger.kernel.org
-  x86@kernel.org
-  linux-alpha@vger.kernel.org
-  linux-ia64@vger.kernel.org
-  linux-s390@vger.kernel.org
-  linux-arch@vger.kernel.org
-  linux-doc@vger.kernel.org
+  <linux-kernel@vger.kernel.org>
+  <x86@kernel.org>
+  <linux-alpha@vger.kernel.org>
+  <linux-ia64@vger.kernel.org>
+  <linux-s390@vger.kernel.org>
+  <linux-arch@vger.kernel.org>
+  <linux-doc@vger.kernel.org>
   Jason Low <jason.low2@hp.com>
   Dave Chinner <david@fromorbit.com>
   Jonathan Corbet <corbet@lwn.net>
@@ -340,4 +340,4 @@
  "-- \n"
  1.7.1
 
-b956cf42b30825096f8691b4631d157d71edb7f4b18adeb78e8ff3cb8f465e87
+f9835f2d67d7cc78a665cbdd2b22628d18dc0aa7fb1a5f54289354b8f576c6ca

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.