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