All of lore.kernel.org
 help / color / mirror / Atom feed
diff for duplicates of <20200611014128.5iEXzjAG-%akpm@linux-foundation.org>

diff --git a/a/1.txt b/N1/1.txt
index 7cfed81..63149d3 100644
--- a/a/1.txt
+++ b/N1/1.txt
@@ -63,4 +63,28 @@ Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
 -	kcov = t->kcov;
 -	area = t->kcov_area;
 -	size = t->kcov_size;
--	sequence = t->kcov_sequence;
\ No newline at end of file
+-	sequence = t->kcov_sequence;
+-
++	/*
++	 * When in softirq, check if the corresponding kcov_remote_start()
++	 * actually found the remote handle and started collecting coverage.
++	 */
++	if (in_serving_softirq() && !t->kcov_softirq) {
++		local_irq_restore(flags);
++		return;
++	}
++	/* Make sure that kcov_softirq is only set when in softirq. */
+ 	if (WARN_ON(!in_serving_softirq() && t->kcov_softirq)) {
+ 		local_irq_restore(flags);
+ 		return;
+ 	}
+ 
++	kcov = t->kcov;
++	area = t->kcov_area;
++	size = t->kcov_size;
++	sequence = t->kcov_sequence;
++
+ 	kcov_stop(t);
+ 	if (in_serving_softirq()) {
+ 		t->kcov_softirq = 0;
+_
\ No newline at end of file
diff --git a/a/content_digest b/N1/content_digest
index 7bf9177..98b1dee 100644
--- a/a/content_digest
+++ b/N1/content_digest
@@ -93,7 +93,31 @@
   "-\tkcov = t->kcov;\n",
   "-\tarea = t->kcov_area;\n",
   "-\tsize = t->kcov_size;\n",
-  "-\tsequence = t->kcov_sequence;"
+  "-\tsequence = t->kcov_sequence;\n",
+  "-\n",
+  "+\t/*\n",
+  "+\t * When in softirq, check if the corresponding kcov_remote_start()\n",
+  "+\t * actually found the remote handle and started collecting coverage.\n",
+  "+\t */\n",
+  "+\tif (in_serving_softirq() && !t->kcov_softirq) {\n",
+  "+\t\tlocal_irq_restore(flags);\n",
+  "+\t\treturn;\n",
+  "+\t}\n",
+  "+\t/* Make sure that kcov_softirq is only set when in softirq. */\n",
+  " \tif (WARN_ON(!in_serving_softirq() && t->kcov_softirq)) {\n",
+  " \t\tlocal_irq_restore(flags);\n",
+  " \t\treturn;\n",
+  " \t}\n",
+  " \n",
+  "+\tkcov = t->kcov;\n",
+  "+\tarea = t->kcov_area;\n",
+  "+\tsize = t->kcov_size;\n",
+  "+\tsequence = t->kcov_sequence;\n",
+  "+\n",
+  " \tkcov_stop(t);\n",
+  " \tif (in_serving_softirq()) {\n",
+  " \t\tt->kcov_softirq = 0;\n",
+  "_"
 ]
 
-7019ccd8b2f6142e6d5925c0f6679a87f3ce555d873c4e2c6b21cd4ad4a68547
+797423ce419dd554d4deb58594445859649ff6d6ea0a49c7cec8b5968e5ea47b

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.