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>