svn commit: r232751 - head/sys/kern

Juli Mallett jmallett at FreeBSD.org
Fri Mar 9 22:30:55 UTC 2012


Author: jmallett
Date: Fri Mar  9 22:30:54 2012
New Revision: 232751
URL: http://svn.freebsd.org/changeset/base/232751

Log:
  Export intrcnt correctly when running under 32-bit compatibility.
  
  Reviewed by:	gonzo, nwhitehorn

Modified:
  head/sys/kern/kern_intr.c

Modified: head/sys/kern/kern_intr.c
==============================================================================
--- head/sys/kern/kern_intr.c	Fri Mar  9 21:31:12 2012	(r232750)
+++ head/sys/kern/kern_intr.c	Fri Mar  9 22:30:54 2012	(r232751)
@@ -1881,6 +1881,24 @@ SYSCTL_PROC(_hw, OID_AUTO, intrnames, CT
 static int
 sysctl_intrcnt(SYSCTL_HANDLER_ARGS)
 {
+#ifdef SCTL_MASK32
+	uint32_t *intrcnt32;
+	unsigned i;
+	int error;
+
+	if (req->flags & SCTL_MASK32) {
+		if (!req->oldptr)
+			return (sysctl_handle_opaque(oidp, NULL, sintrcnt / 2, req));
+		intrcnt32 = malloc(sintrcnt / 2, M_TEMP, M_NOWAIT);
+		if (intrcnt32 == NULL)
+			return (ENOMEM);
+		for (i = 0; i < sintrcnt / sizeof (u_long); i++)
+			intrcnt32[i] = intrcnt[i];
+		error = sysctl_handle_opaque(oidp, intrcnt32, sintrcnt / 2, req);
+		free(intrcnt32, M_TEMP);
+		return (error);
+	}
+#endif
 	return (sysctl_handle_opaque(oidp, intrcnt, sintrcnt, req));
 }
 


More information about the svn-src-all mailing list