diff options
-rw-r--r-- | core/localboot.inc | 3 | ||||
-rw-r--r-- | core/pxelinux.asm | 1 | ||||
-rw-r--r-- | core/runkernel.inc | 2 |
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 |