Commit 48221e3716 for qemu.org

commit 48221e371686f7704f150aafe46b76bb9306c7b6
Author: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Date:   Thu Mar 12 23:34:41 2026 -0700

    contrib/plugins/uftrace.c: fix depth for exit events

    Uftrace plugin was recording wrong depth for exit events, resulting in
    incoherent traces, especially for partial ones.

    Thanks to Honggyu Kim, one of the original author of uftrace, who
    spotted the issue.
    https://github.com/namhyung/uftrace/pull/2031#issuecomment-4051762627

    Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
    Link: https://lore.kernel.org/qemu-devel/20260313063441.2048882-1-pierrick.bouvier@linaro.org
    Signed-off-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>

diff --git a/contrib/plugins/uftrace.c b/contrib/plugins/uftrace.c
index e3c65a1c93..f974090e23 100644
--- a/contrib/plugins/uftrace.c
+++ b/contrib/plugins/uftrace.c
@@ -817,7 +817,8 @@ static void track_callstack(unsigned int cpu_index, void *udata)
     if (fp == caller.frame_pointer) {
         /* return */
         CallstackEntry e = callstack_pop(cs);
-        trace_exit_function(t, timestamp, e.pc, callstack_depth(cs));
+        /* uftrace convention is to use same depth as entry */
+        trace_exit_function(t, timestamp, e.pc, callstack_depth(cs) + 1);
         return;
     }