From 48ed1432c568b4df3066db3192c5ad1f4b046524 Mon Sep 17 00:00:00 2001 From: "Tim J. Robbins" Date: Fri, 31 Jan 2003 11:22:31 +0000 Subject: [PATCH] Use a local variable to store the number of ticks that elapsed in kernel mode instead of (unintentionally) using the global `ticks'. This error completely broke profiling. --- sys/kern/subr_trap.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sys/kern/subr_trap.c b/sys/kern/subr_trap.c index ecd00c10ab75..92835a00230c 100644 --- a/sys/kern/subr_trap.c +++ b/sys/kern/subr_trap.c @@ -76,6 +76,7 @@ userret(td, frame, oticks) #ifdef INVARIANTS struct kse *ke; #endif + u_int64_t eticks; CTR3(KTR_SYSC, "userret: thread %p (pid %d, %s)", td, p->p_pid, p->p_comm); @@ -109,8 +110,8 @@ userret(td, frame, oticks) */ if (p->p_sflag & PS_PROFIL) { - ticks = td->td_sticks - oticks; - addupc_task(td, TRAPF_PC(frame), (u_int)ticks * psratio); + eticks = td->td_sticks - oticks; + addupc_task(td, TRAPF_PC(frame), (u_int)eticks * psratio); } /*