svn commit: r262049 - in stable/9/sys/cddl/contrib/opensolaris/uts/common: dtrace sys
Andriy Gapon
avg at FreeBSD.org
Mon Feb 17 13:11:28 UTC 2014
Author: avg
Date: Mon Feb 17 13:11:27 2014
New Revision: 262049
URL: http://svnweb.freebsd.org/changeset/base/262049
Log:
MFC r258291: change the ioctl definition so that the fasttrap ioctl
handler is responsible for copying in userland data
Modified:
stable/9/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c
stable/9/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap.h
Directory Properties:
stable/9/sys/ (props changed)
stable/9/sys/cddl/contrib/opensolaris/ (props changed)
Modified: stable/9/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c
==============================================================================
--- stable/9/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c Mon Feb 17 13:11:15 2014 (r262048)
+++ stable/9/sys/cddl/contrib/opensolaris/uts/common/dtrace/fasttrap.c Mon Feb 17 13:11:27 2014 (r262049)
@@ -2056,20 +2056,16 @@ fasttrap_ioctl(struct cdev *dev, u_long
return (EAGAIN);
if (cmd == FASTTRAPIOC_MAKEPROBE) {
- fasttrap_probe_spec_t *uprobe = (void *)arg;
+ fasttrap_probe_spec_t *uprobe = *(fasttrap_probe_spec_t **)arg;
fasttrap_probe_spec_t *probe;
uint64_t noffs;
size_t size;
int ret;
char *c;
-#if defined(sun)
if (copyin(&uprobe->ftps_noffs, &noffs,
sizeof (uprobe->ftps_noffs)))
return (EFAULT);
-#else
- noffs = uprobe->ftps_noffs;
-#endif
/*
* Probes must have at least one tracepoint.
@@ -2085,19 +2081,10 @@ fasttrap_ioctl(struct cdev *dev, u_long
probe = kmem_alloc(size, KM_SLEEP);
-#if defined(sun)
if (copyin(uprobe, probe, size) != 0) {
kmem_free(probe, size);
return (EFAULT);
}
-#else
- memcpy(probe, uprobe, sizeof(*probe));
- if (noffs > 1 && copyin(uprobe + 1, probe + 1, size) != 0) {
- kmem_free(probe, size);
- return (EFAULT);
- }
-#endif
-
/*
* Verify that the function and module strings contain no
Modified: stable/9/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap.h
==============================================================================
--- stable/9/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap.h Mon Feb 17 13:11:15 2014 (r262048)
+++ stable/9/sys/cddl/contrib/opensolaris/uts/common/sys/fasttrap.h Mon Feb 17 13:11:27 2014 (r262049)
@@ -42,8 +42,8 @@ extern "C" {
#define FASTTRAPIOC_MAKEPROBE (FASTTRAPIOC | 1)
#define FASTTRAPIOC_GETINSTR (FASTTRAPIOC | 2)
#else
-#define FASTTRAPIOC_MAKEPROBE _IOW('f', 1, fasttrap_probe_spec_t)
#define FASTTRAPIOC_GETINSTR _IOWR('f', 2, uint8_t)
+#define FASTTRAPIOC_MAKEPROBE _IO('f', 3)
#endif
typedef enum fasttrap_probe_type {
More information about the svn-src-stable-9
mailing list