svn commit: r257679 - in head/sys/cddl/contrib/opensolaris/uts: common/sys intel/dtrace
Mark Johnston
markj at FreeBSD.org
Tue Nov 5 06:13:47 UTC 2013
Author: markj
Date: Tue Nov 5 06:13:46 2013
New Revision: 257679
URL: http://svnweb.freebsd.org/changeset/base/257679
Log:
Use suword32 and suword64 instead of copyout(9). This fixes a bug in the
emulation of the call instruction caused by reversing the uaddr and kaddr
arguments when copying data out to userland: the suword* functions take the
uaddr as the first argument whereas copyout(9) takes the kaddr as the first
argument. This also partially undoes the fixes from r257143.
Submitted by: Prashanth Kumar <pra_udupi at yahoo.co.in> (original version)
MFC after: 1 month
Modified:
head/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap_impl.h
head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
Modified: head/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap_impl.h
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap_impl.h Tue Nov 5 05:18:18 2013 (r257678)
+++ head/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap_impl.h Tue Nov 5 06:13:46 2013 (r257679)
@@ -158,15 +158,15 @@ typedef struct fasttrap_hash {
*/
#define fasttrap_copyout copyout
#define fasttrap_fuword32 fuword32
-#define fasttrap_suword32(_k, _u) copyout((_k), (_u), sizeof(uint32_t))
-#define fasttrap_suword64(_k, _u) copyout((_k), (_u), sizeof(uint64_t))
+#define fasttrap_suword32 suword32
+#define fasttrap_suword64 suword64
#ifdef __amd64__
#define fasttrap_fulword fuword64
-#define fasttrap_sulword fasttrap_suword64
+#define fasttrap_sulword suword64
#else
#define fasttrap_fulword fuword32
-#define fasttrap_sulword fasttrap_suword32
+#define fasttrap_sulword suword32
#endif
extern void fasttrap_sigtrap(proc_t *, kthread_t *, uintptr_t);
Modified: head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c Tue Nov 5 05:18:18 2013 (r257678)
+++ head/sys/cddl/contrib/opensolaris/uts/intel/dtrace/fasttrap_isa.c Tue Nov 5 06:13:46 2013 (r257679)
@@ -1399,12 +1399,12 @@ fasttrap_pid_probe(struct reg *rp)
#ifdef __amd64
if (p->p_model == DATAMODEL_NATIVE) {
rp->r_rsp -= sizeof (uintptr_t);
- ret = fasttrap_sulword(&rp->r_rbp, (void *)rp->r_rsp);
+ ret = fasttrap_sulword((void *)rp->r_rsp, rp->r_rbp);
} else {
#endif
#ifdef __i386__
rp->r_rsp -= sizeof (uint32_t);
- ret = fasttrap_suword32(&rp->r_rbp, (void *)rp->r_rsp);
+ ret = fasttrap_suword32((void *)rp->r_rsp, rp->r_rbp);
#endif
#ifdef __amd64
}
@@ -1499,13 +1499,13 @@ fasttrap_pid_probe(struct reg *rp)
if (p->p_model == DATAMODEL_NATIVE) {
addr = rp->r_rsp - sizeof (uintptr_t);
pcps = pc + tp->ftt_size;
- ret = fasttrap_sulword((void *)addr, &pcps);
+ ret = fasttrap_sulword((void *)addr, pcps);
} else {
#endif
#ifdef __i386__
addr = rp->r_rsp - sizeof (uint32_t);
pcps = (uint32_t)(pc + tp->ftt_size);
- ret = fasttrap_suword32((void *)addr, &pcps);
+ ret = fasttrap_suword32((void *)addr, pcps);
#endif
#ifdef __amd64
}
More information about the svn-src-head
mailing list