aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Huth <thuth@linux.vnet.ibm.com>2011-11-21 10:45:44 +0100
committerThomas Huth <thuth@linux.vnet.ibm.com>2011-11-24 10:21:56 +0100
commit7c33e2235178850b0be6237d0bcc9c36c89c9578 (patch)
treeb2d7ad2d06467eff26c20435ce353d5964b9a0d7
parent2d3eabca483fcab04c00efa456aa77f48f6efc0e (diff)
downloadSLOF-7c33e2235178850b0be6237d0bcc9c36c89c9578.zip
SLOF-7c33e2235178850b0be6237d0bcc9c36c89c9578.tar.gz
SLOF-7c33e2235178850b0be6237d0bcc9c36c89c9578.tar.bz2
Fix stack problem during setup-alias functions
The code for setting some of the device alias had a bug. When it was called multiple times, for example because two or more hard disk images had been configured, it left an item on the Forth stack, causing a crash or other ugly side effects later. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com>
-rw-r--r--board-qemu/slof/vio-hvterm.fs4
-rw-r--r--board-qemu/slof/vio-veth.fs4
-rw-r--r--board-qemu/slof/vio-vscsi-device.fs2
-rw-r--r--board-qemu/slof/vio-vscsi.fs4
4 files changed, 10 insertions, 4 deletions
diff --git a/board-qemu/slof/vio-hvterm.fs b/board-qemu/slof/vio-hvterm.fs
index 32b2a59..38f725a 100644
--- a/board-qemu/slof/vio-hvterm.fs
+++ b/board-qemu/slof/vio-hvterm.fs
@@ -26,7 +26,9 @@
: setup-alias
" hvterm" find-alias 0= IF
" hvterm" get-node node>path set-alias
- ELSE THEN
+ ELSE
+ drop
+ THEN
;
setup-alias
diff --git a/board-qemu/slof/vio-veth.fs b/board-qemu/slof/vio-veth.fs
index 0da0c61..a23ba1c 100644
--- a/board-qemu/slof/vio-veth.fs
+++ b/board-qemu/slof/vio-veth.fs
@@ -36,6 +36,8 @@ INSTANCE VARIABLE obp-tftp-package
: setup-alias
" net" find-alias 0= IF
" net" get-node node>path set-alias
- ELSE THEN
+ ELSE
+ drop
+ THEN
;
setup-alias
diff --git a/board-qemu/slof/vio-vscsi-device.fs b/board-qemu/slof/vio-vscsi-device.fs
index 842d7b5..fcebe8e 100644
--- a/board-qemu/slof/vio-vscsi-device.fs
+++ b/board-qemu/slof/vio-vscsi-device.fs
@@ -28,7 +28,7 @@ VALUE is_cdrom
2dup find-alias 0= IF
get-node node>path set-alias
-ELSE 2drop THEN
+ELSE 3drop THEN
s" block" device-type
diff --git a/board-qemu/slof/vio-vscsi.fs b/board-qemu/slof/vio-vscsi.fs
index 4ea8598..77e358e 100644
--- a/board-qemu/slof/vio-vscsi.fs
+++ b/board-qemu/slof/vio-vscsi.fs
@@ -613,7 +613,9 @@ scsi-close
: setup-alias
" scsi" find-alias 0= IF
" scsi" get-node node>path set-alias
- ELSE THEN
+ ELSE
+ drop
+ THEN
;
: vscsi-init-and-scan ( -- )