diff options
author | marius <marius@FreeBSD.org> | 2010-04-02 21:48:27 +0000 |
---|---|---|
committer | marius <marius@FreeBSD.org> | 2010-04-02 21:48:27 +0000 |
commit | bb4566312b32efc10475f0ef7b34bf3427a25225 (patch) | |
tree | 330959e841700c3efd9f0bc439057c9ec69815bf /sys | |
parent | 4de64106dd619c2617ea88c63727d195031d7479 (diff) | |
download | FreeBSD-src-bb4566312b32efc10475f0ef7b34bf3427a25225.zip FreeBSD-src-bb4566312b32efc10475f0ef7b34bf3427a25225.tar.gz |
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
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/ofw/ofw_standard.c | 6 | ||||
-rw-r--r-- | sys/powerpc/ofw/ofw_real.c | 6 |
2 files changed, 12 insertions, 0 deletions
diff --git a/sys/dev/ofw/ofw_standard.c b/sys/dev/ofw/ofw_standard.c index 0fda7db..e521fa0 100644 --- a/sys/dev/ofw/ofw_standard.c +++ b/sys/dev/ofw/ofw_standard.c @@ -589,6 +589,7 @@ ofw_std_close(ofw_t ofw, ihandle_t instance) } args = { (cell_t)"close", 1, + 0, }; args.instance = instance; @@ -717,6 +718,7 @@ ofw_std_release(ofw_t ofw, void *virt, size_t size) } 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); diff --git a/sys/powerpc/ofw/ofw_real.c b/sys/powerpc/ofw/ofw_real.c index 094025c..4425ad1 100644 --- a/sys/powerpc/ofw/ofw_real.c +++ b/sys/powerpc/ofw/ofw_real.c @@ -737,6 +737,7 @@ ofw_real_close(ofw_t ofw, ihandle_t instance) } args = { (cell_t)"close", 1, + 0, }; args.instance = instance; @@ -876,6 +877,7 @@ ofw_real_release(ofw_t ofw, void *virt, size_t size) } 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); |