Page MenuHomeFreeBSD

D28895.id84546.diff
No OneTemporary

D28895.id84546.diff

Index: sys/amd64/include/csan.h
===================================================================
--- sys/amd64/include/csan.h
+++ sys/amd64/include/csan.h
@@ -31,6 +31,9 @@
* $FreeBSD$
*/
+#include <sys/timetc.h>
+
+#include <machine/clock.h>
#include <machine/cpufunc.h>
#include <machine/stack.h>
#include <machine/vmparam.h>
@@ -64,7 +67,14 @@
static inline void
kcsan_md_delay(uint64_t us)
{
- DELAY(us);
+ /*
+ * Only call DELAY if not using the early delay code. The i8254
+ * early delay function may cause us to recurse on a spin lock
+ * leading to a panic.
+ */
+ if ((tsc_is_invariant && tsc_freq != 0) ||
+ timecounter->tc_quality > 0)
+ DELAY(us);
}
static void

File Metadata

Mime Type
text/plain
Expires
Tue, Apr 7, 4:07 PM (5 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31041173
Default Alt Text
D28895.id84546.diff (703 B)

Event Timeline