Author: mjg
Date: Sun Jan 12 06:09:10 2020
New Revision: 356656
URL: https://svnweb.freebsd.org/changeset/base/356656

Log:
  Add "panicked" boolean which can be tested instead of panicstr
  
  The test is performed all the time and reading entire panicstr to do it
  wastes space.

Modified:
  head/sys/kern/kern_shutdown.c
  head/sys/sys/systm.h

Modified: head/sys/kern/kern_shutdown.c
==============================================================================
--- head/sys/kern/kern_shutdown.c       Sun Jan 12 06:07:54 2020        
(r356655)
+++ head/sys/kern/kern_shutdown.c       Sun Jan 12 06:09:10 2020        
(r356656)
@@ -217,7 +217,8 @@ SYSCTL_INT(_kern, OID_AUTO, kerneldump_gzlevel, CTLFLA
  * Variable panicstr contains argument to first call to panic; used as flag
  * to indicate that the kernel has already called panic.
  */
-const char __read_mostly *panicstr;
+const char *panicstr;
+bool __read_frequently panicked;
 
 int __read_mostly dumping;             /* system is dumping */
 int rebooting;                         /* system is rebooting */
@@ -873,6 +874,7 @@ vpanic(const char *fmt, va_list ap)
        else {
                bootopt |= RB_DUMP;
                panicstr = fmt;
+               panicked = true;
                newpanic = 1;
        }
 

Modified: head/sys/sys/systm.h
==============================================================================
--- head/sys/sys/systm.h        Sun Jan 12 06:07:54 2020        (r356655)
+++ head/sys/sys/systm.h        Sun Jan 12 06:09:10 2020        (r356656)
@@ -53,7 +53,8 @@ extern int cold;              /* nonzero if we are doing a 
cold bo
 extern int suspend_blocked;    /* block suspend due to pending shutdown */
 extern int rebooting;          /* kern_reboot() has been called. */
 extern const char *panicstr;   /* panic message */
-#define        KERNEL_PANICKED()       __predict_false(panicstr != NULL)
+extern bool panicked;
+#define        KERNEL_PANICKED()       __predict_false(panicked)
 extern char version[];         /* system version */
 extern char compiler_version[];        /* compiler version */
 extern char copyright[];       /* system copyright */
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to