From: H. Peter Anvin Date: Fri, 4 Sep 2009 22:46:43 +0000 (-0700) Subject: core: add missing calls to cleanup_hardware X-Git-Tag: syslinux-3.83-pre10^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=517edd4527b9b4bd33aa18c8c6edecf20a9a992f;p=platform%2Fupstream%2Fsyslinux.git core: add missing calls to cleanup_hardware 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 --- diff --git a/core/localboot.inc b/core/localboot.inc index ae54737..6709b3b 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 b274514..2fb0e08 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 8bfc8b8..ac00342 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