Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 Mar 2011 11:43:49 +0000 (UTC)
From:      Konstantin Belousov <kib@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r219988 - head/sys/compat/freebsd32
Message-ID:  <201103251143.p2PBhnFO079941@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: kib
Date: Fri Mar 25 11:43:49 2011
New Revision: 219988
URL: http://svn.freebsd.org/changeset/base/219988

Log:
  Fully emulate MDIOCLIST for compat32.
  
  MFC after:	1 week

Modified:
  head/sys/compat/freebsd32/freebsd32_ioctl.c

Modified: head/sys/compat/freebsd32/freebsd32_ioctl.c
==============================================================================
--- head/sys/compat/freebsd32/freebsd32_ioctl.c	Fri Mar 25 11:05:28 2011	(r219987)
+++ head/sys/compat/freebsd32/freebsd32_ioctl.c	Fri Mar 25 11:43:49 2011	(r219988)
@@ -64,7 +64,7 @@ freebsd32_ioctl_md(struct thread *td, st
 	struct md_ioctl mdv;
 	struct md_ioctl32 md32;
 	u_long com = 0;
-	int error;
+	int i, error;
 
 	if (uap->com & IOC_IN) {
 		if ((error = copyin(uap->data, &md32, sizeof(md32)))) {
@@ -116,6 +116,14 @@ freebsd32_ioctl_md(struct thread *td, st
 		CP(mdv, md32, md_base);
 		CP(mdv, md32, md_fwheads);
 		CP(mdv, md32, md_fwsectors);
+		if (com == MDIOCLIST) {
+			/*
+			 * Use MDNPAD, and not MDNPAD32.  Padding is
+			 * allocated and used by compat32 ABI.
+			 */
+			for (i = 0; i < MDNPAD; i++)
+				CP(mdv, md32, md_pad[i]);
+		}
 		error = copyout(&md32, uap->data, sizeof(md32));
 	}
 	return error;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201103251143.p2PBhnFO079941>