|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] x86/boot: Fix edd=off to skip mbr
commit 02e656f7c8fd63828307a4eac633958d82b36116
Author: Jason Andryuk <jason.andryuk@xxxxxxx>
AuthorDate: Thu Oct 16 10:25:27 2025 +0200
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Thu Oct 16 10:25:27 2025 +0200
x86/boot: Fix edd=off to skip mbr
When the fixes commit re-arranged the code, it made edd=off jump to the
mbr code instead of returning from the function. Previously edd_done
was immediately before ret and skipped the MBR check.
Replace edd_done with .Ledd_mbr_sig for the start of the MBR checking,
and replace .Ledd_mbr_sig_skip with .Ledd_done to exit from the function.
edd=off jumps to .Ledd_done to return from the function, and internal
jumps go to .Ledd_mbr_sig to check edd=skipmbr.
Fixes: 5ec164fd61bd ("x86/boot: re-arrange how/when we do disk I/O")
Signed-off-by: Jason Andryuk <jason.andryuk@xxxxxxx>
Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx>
Release-Acked-By: Oleksii Kurochko<oleksii.kurochko@xxxxxxxxx>
---
xen/arch/x86/boot/edd.S | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/xen/arch/x86/boot/edd.S b/xen/arch/x86/boot/edd.S
index 3df712bce1..02437511b2 100644
--- a/xen/arch/x86/boot/edd.S
+++ b/xen/arch/x86/boot/edd.S
@@ -25,7 +25,7 @@
get_edd:
cmpb $2, bootsym(opt_edd) # edd=off ?
- je edd_done
+ je .Ledd_done
# Do the BIOS Enhanced Disk Drive calls
# This consists of two calls:
@@ -48,7 +48,7 @@ edd_check_ext:
movb $0x41, %ah # 0x41 Check Extensions Present
movw $0x55AA, %bx # magic
int $0x13 # make the call
- jc edd_done # no more BIOS devices
+ jc .Ledd_mbr_sig # no more BIOS devices
cmpw $0xAA55, %bx # is magic right?
jne edd_next # nope, next...
@@ -96,13 +96,13 @@ edd_legacy_done:
edd_next:
incb %dl # increment to next device
- jz edd_done
+ jz .Ledd_mbr_sig
cmpb $EDD_INFO_MAX,bootsym(boot_edd_info_nr)
jb edd_check_ext
-edd_done:
+.Ledd_mbr_sig:
cmpb $1, bootsym(opt_edd) # edd=skipmbr ?
- je .Ledd_mbr_sig_skip
+ je .Ledd_done
# Read the first sector of each BIOS disk device and store the 4-byte signature
.Ledd_mbr_sig_start:
@@ -160,7 +160,7 @@ edd_done:
jb .Ledd_mbr_sig_read
.Ledd_mbr_sig_done:
popw %es
-.Ledd_mbr_sig_skip:
+.Ledd_done:
ret
GLOBAL(boot_edd_info_nr)
--
generated by git-patchbot for /home/xen/git/xen.git#staging
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |