Unconditionally reset the ADV if we don't have one loaded from a medium syslinux-3.60-pre8
authorH. Peter Anvin <hpa@zytor.com>
Mon, 7 Jan 2008 23:13:59 +0000 (15:13 -0800)
committerH. Peter Anvin <hpa@zytor.com>
Mon, 7 Jan 2008 23:13:59 +0000 (15:13 -0800)
For non-extlinux derivatives, unconditionally initialize the in-memory
ADV to blank.

adv.inc

diff --git a/adv.inc b/adv.inc
index 989b4e0..e1f6527 100644 (file)
--- a/adv.inc
+++ b/adv.inc
@@ -90,6 +90,9 @@ adv_init:
                ; Initialize the ADV data structure in memory
                ;
 adv_verify:
+               cmp byte [ADVDrive],-1          ; No ADV configured, still?
+               je .reset                       ; Then unconditionally reset
+
                mov si,adv0
                call .check_adv
                jz .ok                          ; Primary ADV okay
@@ -98,6 +101,7 @@ adv_verify:
                jz .adv1ok
 
                ; Neither ADV is usable; initialize to blank
+.reset:
                mov di,adv0
                mov eax,ADV_MAGIC1
                stosd