From a7aa3d4d758dc60894e7f9c99411a64837fd3c18 Mon Sep 17 00:00:00 2001 From: Mark Johnston Date: Tue, 9 Aug 2022 16:08:09 -0400 Subject: [PATCH] fbt/x86: Extract arg1 for return probes from the trapframe dtrace invop handlers have access to the whole trapframe, just use that to extract %rax/%eax for return probes instead of relying on an additional parameter to the handler. No functional change intended. MFC after: 2 weeks Sponsored by: The FreeBSD Foundation --- sys/cddl/dev/fbt/x86/fbt_isa.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/cddl/dev/fbt/x86/fbt_isa.c b/sys/cddl/dev/fbt/x86/fbt_isa.c index 74de00a3f00..05ec87ab437 100644 --- a/sys/cddl/dev/fbt/x86/fbt_isa.c +++ b/sys/cddl/dev/fbt/x86/fbt_isa.c @@ -61,19 +61,21 @@ #define FBT_RETURN "return" int -fbt_invop(uintptr_t addr, struct trapframe *frame, uintptr_t rval) +fbt_invop(uintptr_t addr, struct trapframe *frame, uintptr_t scratch __unused) { solaris_cpu_t *cpu; uintptr_t *stack; - uintptr_t arg0, arg1, arg2, arg3, arg4; + uintptr_t arg0, arg1, arg2, arg3, arg4, rval; fbt_probe_t *fbt; int8_t fbtrval; #ifdef __amd64__ stack = (uintptr_t *)frame->tf_rsp; + rval = frame->tf_rax; #else /* Skip hardware-saved registers. */ stack = (uintptr_t *)frame->tf_isp + 3; + rval = frame->tf_eax; #endif cpu = &solaris_cpu[curcpu];