diff options
author | brendan <none@none> | 2008-07-01 18:28:22 -0700 |
---|---|---|
committer | brendan <none@none> | 2008-07-01 18:28:22 -0700 |
commit | b0a27161a17f3895896e339e1786b15a1dcee3b5 (patch) | |
tree | d32e71096b37d6bf4927440727e92f7aeeac65fa /usr/src/uts/intel/dtrace/sdt.c | |
parent | 323a81d93e2f58a7d62f6e523f9fddbc029d3d0b (diff) | |
download | illumos-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.c | 5 |
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; |