All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20080902132825.23160.35234.stgit@dev.haskins.net>

diff --git a/a/1.txt b/N1/1.txt
index 57ccadf..096adf9 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -163,3 +163,20 @@ index 345d726..605fcdb 100644
  static inline int __read_seqretry(seqlock_t *sl, unsigned iv)
  {
 -	int ret;
+-
+ 	smp_rmb();
+-	ret = (sl->sequence != iv);
+-	/*
+-	 * If invalid then serialize with the writer, to make sure we
+-	 * are not livelocking it:
+-	 */
+-	if (unlikely(ret)) {
+-		unsigned long flags;
+-		spin_lock_irqsave(&sl->lock, flags);
+-		spin_unlock_irqrestore(&sl->lock, flags);
+-	}
+-	return ret;
++	return (sl->sequence != iv);
+ }
+ 
+ static __always_inline void __write_seqlock_raw(raw_seqlock_t *sl)
diff --git a/a/content_digest b/N1/content_digest
index c749172..28b280d 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -176,6 +176,23 @@
  "  */\n"
  " static inline int __read_seqretry(seqlock_t *sl, unsigned iv)\n"
  " {\n"
- "-\tint ret;"
+ "-\tint ret;\n"
+ "-\n"
+ " \tsmp_rmb();\n"
+ "-\tret = (sl->sequence != iv);\n"
+ "-\t/*\n"
+ "-\t * If invalid then serialize with the writer, to make sure we\n"
+ "-\t * are not livelocking it:\n"
+ "-\t */\n"
+ "-\tif (unlikely(ret)) {\n"
+ "-\t\tunsigned long flags;\n"
+ "-\t\tspin_lock_irqsave(&sl->lock, flags);\n"
+ "-\t\tspin_unlock_irqrestore(&sl->lock, flags);\n"
+ "-\t}\n"
+ "-\treturn ret;\n"
+ "+\treturn (sl->sequence != iv);\n"
+ " }\n"
+ " \n"
+  static __always_inline void __write_seqlock_raw(raw_seqlock_t *sl)
 
-f76d6d18a93caaf4633aafadf76df22a1e6738a3ac87d87ef4ee241ca7eec5ff
+a9571e5f9c62f995f2202178e0e90e642528df68a1693c540d71c61c0ce52e38

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.