Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 2 Apr 2010 21:48:27 +0000 (UTC)
From:      Marius Strobl <marius@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r206116 - in head/sys: dev/ofw powerpc/ofw
Message-ID:  <201004022148.o32LmRD5086119@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: marius
Date: Fri Apr  2 21:48:27 2010
New Revision: 206116
URL: http://svn.freebsd.org/changeset/base/206116

Log:
  With r205496 in place we should ensure that nargs and nreturns are always
  set to sane values as they no longer default to 0, otherwise some OFW
  implementation might copy in or out arguments not based on what the actual
  function takes but what ever stack garbage nargs and nreturns supply.
  
  Reviewed by:	nwhitehorn

Modified:
  head/sys/dev/ofw/ofw_standard.c
  head/sys/powerpc/ofw/ofw_real.c

Modified: head/sys/dev/ofw/ofw_standard.c
==============================================================================
--- head/sys/dev/ofw/ofw_standard.c	Fri Apr  2 21:35:10 2010	(r206115)
+++ head/sys/dev/ofw/ofw_standard.c	Fri Apr  2 21:48:27 2010	(r206116)
@@ -589,6 +589,7 @@ ofw_std_close(ofw_t ofw, ihandle_t insta
 	} args = {
 		(cell_t)"close",
 		1,
+		0,
 	};
 
 	args.instance = instance;
@@ -717,6 +718,7 @@ ofw_std_release(ofw_t ofw, void *virt, s
 	} args = {
 		(cell_t)"release",
 		2,
+		0,
 	};
 
 	args.virt = (cell_t)virt;
@@ -738,6 +740,8 @@ ofw_std_enter(ofw_t ofw)
 		cell_t nreturns;
 	} args = {
 		(cell_t)"enter",
+		0,
+		0,
 	};
 
 	openfirmware(&args);
@@ -754,6 +758,8 @@ ofw_std_exit(ofw_t ofw)
 		cell_t nreturns;
 	} args = {
 		(cell_t)"exit",
+		0,
+		0,
 	};
 
 	openfirmware(&args);

Modified: head/sys/powerpc/ofw/ofw_real.c
==============================================================================
--- head/sys/powerpc/ofw/ofw_real.c	Fri Apr  2 21:35:10 2010	(r206115)
+++ head/sys/powerpc/ofw/ofw_real.c	Fri Apr  2 21:48:27 2010	(r206116)
@@ -737,6 +737,7 @@ ofw_real_close(ofw_t ofw, ihandle_t inst
 	} args = {
 		(cell_t)"close",
 		1,
+		0,
 	};
 
 	args.instance = instance;
@@ -876,6 +877,7 @@ ofw_real_release(ofw_t ofw, void *virt, 
 	} args = {
 		(cell_t)"release",
 		2,
+		0,
 	};
 
 	args.virt = (cell_t)virt;
@@ -897,6 +899,8 @@ ofw_real_enter(ofw_t ofw)
 		cell_t nreturns;
 	} args = {
 		(cell_t)"enter",
+		0,
+		0,
 	};
 
 	openfirmware(&args);
@@ -913,6 +917,8 @@ ofw_real_exit(ofw_t ofw)
 		cell_t nreturns;
 	} args = {
 		(cell_t)"exit",
+		0,
+		0,
 	};
 
 	openfirmware(&args);



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