This bug can cause all sorts of problems, but in particular it was
most easily reproduced as a double fault in the syscall return path on
this CPU model:
Intel(R) Core(TM) i7-8650U CPU @ 1.90GHz
Tons of help from guenther@ in narrowing down the root cause. Fix
tweaked by guenther@. Additional input from deraadt@ and kettenis@.
ok guenther@
-/* $OpenBSD: profile.h,v 1.5 2021/09/04 22:15:33 bluhm Exp $ */
+/* $OpenBSD: profile.h,v 1.6 2023/06/27 10:11:15 cheloha Exp $ */
/* $NetBSD: profile.h,v 1.3 2003/11/28 23:22:45 fvdl Exp $ */
/*
#ifdef _KERNEL
-#define MCOUNT_ENTER (void)&s; __asm__("cli");
-#define MCOUNT_EXIT __asm__("sti");
+#define MCOUNT_ENTER s = intr_disable()
+#define MCOUNT_EXIT intr_restore(s)
#endif /* _KERNEL */