summaryrefslogtreecommitdiff
path: root/usr/src/uts/intel/dtrace/sdt.c
diff options
context:
space:
mode:
authorbrendan <none@none>2008-07-01 18:28:22 -0700
committerbrendan <none@none>2008-07-01 18:28:22 -0700
commitb0a27161a17f3895896e339e1786b15a1dcee3b5 (patch)
treed32e71096b37d6bf4927440727e92f7aeeac65fa /usr/src/uts/intel/dtrace/sdt.c
parent323a81d93e2f58a7d62f6e523f9fddbc029d3d0b (diff)
downloadillumos-joyent-b0a27161a17f3895896e339e1786b15a1dcee3b5.tar.gz
6721426 tst.sdtargs.d passes despite dtrace "invalid address" error
Diffstat (limited to 'usr/src/uts/intel/dtrace/sdt.c')
-rw-r--r--usr/src/uts/intel/dtrace/sdt.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/usr/src/uts/intel/dtrace/sdt.c b/usr/src/uts/intel/dtrace/sdt.c
index 20422246a4..e5ac9e8d3d 100644
--- a/usr/src/uts/intel/dtrace/sdt.c
+++ b/usr/src/uts/intel/dtrace/sdt.c
@@ -335,13 +335,14 @@ sdt_getarg(void *arg, dtrace_id_t id, void *parg, int argno, int aframes)
* we're seeking is passed in regsiters, we can just
* load it directly.
*/
- struct regs *rp = (struct regs *)&fp[1];
+ struct regs *rp = (struct regs *)((uintptr_t)&fp[1] +
+ sizeof (uintptr_t));
if (argno <= inreg) {
stack = (uintptr_t *)&rp->r_rdi;
} else {
stack = (uintptr_t *)(rp->r_rsp);
- argno -= inreg;
+ argno -= (inreg + 1);
}
#endif
goto load;