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);
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to