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.