---
 lib/bug.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/lib/bug.c b/lib/bug.c
index b1f07459c2ee..d1007c1b3dda 100644
--- a/lib/bug.c
+++ b/lib/bug.c
@@ -155,6 +155,9 @@ static enum bug_trap_type __report_bug(unsigned long 
bugaddr, struct pt_regs *re
        struct bug_entry *bug;
        const char *file;
        unsigned line, warning, once, done;
+#if defined(SAFEFETCH_DEBUG)
+       current->df_stats.traced = 1;
+#endif
 
        if (!is_valid_bugaddr(bugaddr))
                return BUG_TRAP_TYPE_NONE;
@@ -194,6 +197,9 @@ static enum bug_trap_type __report_bug(unsigned long 
bugaddr, struct pt_regs *re
                /* this is a WARN_ON rather than BUG/BUG_ON */
                __warn(file, line, (void *)bugaddr, BUG_GET_TAINT(bug), regs,
                       NULL);
+#if defined(SAFEFETCH_DEBUG)
+               current->df_stats.traced = 0;
+#endif
                return BUG_TRAP_TYPE_WARN;
        }
 
@@ -203,6 +209,10 @@ static enum bug_trap_type __report_bug(unsigned long 
bugaddr, struct pt_regs *re
                pr_crit("Kernel BUG at %pB [verbose debug info unavailable]\n",
                        (void *)bugaddr);
 
+#if defined(SAFEFETCH_DEBUG)
+       current->df_stats.traced = 0;
+#endif
+
        return BUG_TRAP_TYPE_BUG;
 }
 
-- 
2.25.1


Reply via email to