summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2009-09-04 15:46:43 -0700
committerH. Peter Anvin <hpa@zytor.com>2009-09-04 15:46:43 -0700
commit517edd4527b9b4bd33aa18c8c6edecf20a9a992f (patch)
tree24790cca39a65715fe5ecd6fb3fd78c16916b2a7 /core
parentb6ea8c8a8bc482ea2fadd1826f25e62cabb81e57 (diff)
downloadsyslinux-517edd4527b9b4bd33aa18c8c6edecf20a9a992f.tar.gz
core: add missing calls to cleanup_hardwaresyslinux-3.83-pre10
As we're starting to rely more and more on a modified hardware state, it is really important to clean up on all exit paths. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'core')
-rw-r--r--core/localboot.inc3
-rw-r--r--core/pxelinux.asm1
-rw-r--r--core/runkernel.inc2
3 files changed, 6 insertions, 0 deletions
diff --git a/core/localboot.inc b/core/localboot.inc
index ae54737a..6709b3b4 100644
--- a/core/localboot.inc
+++ b/core/localboot.inc
@@ -31,6 +31,9 @@ local_boot:
mov gs,dx
mov si,localboot_msg
call writestr
+ push ax
+ call cleanup_hardware
+ pop ax
cmp ax,-1
je .int18
diff --git a/core/pxelinux.asm b/core/pxelinux.asm
index b2745146..2fb0e08e 100644
--- a/core/pxelinux.asm
+++ b/core/pxelinux.asm
@@ -864,6 +864,7 @@ local_boot:
mov si,localboot_msg
call writestr_early
; Restore the environment we were called with
+ call cleanup_hardware
lss sp,[InitStack]
pop gs
pop fs
diff --git a/core/runkernel.inc b/core/runkernel.inc
index 8bfc8b8d..ac00342c 100644
--- a/core/runkernel.inc
+++ b/core/runkernel.inc
@@ -461,6 +461,8 @@ run_linux_kernel:
; Set up segment registers and the Linux real-mode stack
; Note: ds == the real mode segment
;
+ call cleanup_hardware
+
cli
mov ax,ds
mov ss,ax