diff options
| author | Greg Lehey <grog@FreeBSD.org> | 2000-12-29 06:27:39 +0000 |
|---|---|---|
| committer | Greg Lehey <grog@FreeBSD.org> | 2000-12-29 06:27:39 +0000 |
| commit | 7fcd0cb31a7ac2a45baf51ce5eb4f1553c7ccd25 (patch) | |
| tree | 2603837f4fa90c41842e288be6f7a5cebe1b8a69 /sys | |
| parent | b31d9f17b1be4fdcb781159037b2c24581bbec15 (diff) | |
Notes
Diffstat (limited to 'sys')
| -rw-r--r-- | sys/kern/kern_ktr.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sys/kern/kern_ktr.c b/sys/kern/kern_ktr.c index 01467d12f8b8..65a4ac6b22ab 100644 --- a/sys/kern/kern_ktr.c +++ b/sys/kern/kern_ktr.c @@ -128,7 +128,15 @@ ktr_tracepoint(u_int mask, char *format, u_long arg1, u_long arg2, u_long arg3, } while (atomic_cmpset_rel_int(&ktr_idx, saveindex, newindex) == 0); entry = &ktr_buf[saveindex]; restore_intr(saveintr); - getnanotime(&entry->ktr_tv); + if (ktr_mask & KTR_LOCK) + /* + * We can't use nanotime with KTR_LOCK, it would cause + * endless recursion, at least under the Intel + * architecture. + */ + getnanotime(&entry->ktr_tv); + else + nanotime(&entry->ktr_tv); #ifdef KTR_EXTEND strncpy(entry->ktr_filename, filename, KTRFILENAMESIZE - 1); entry->ktr_filename[KTRFILENAMESIZE - 1] = '\0'; |
