[PATCH v2 17/23] x86/boot: Reduce size of the DOS stub

From: Evgeniy Baskov
Date: Tue Oct 25 2022 - 10:14:56 EST


This is required to fit more sections in PE section tables,
since its size is restricted by zero page located at specific offset
after the PE header.

Signed-off-by: Evgeniy Baskov <baskov@xxxxxxxxx>
---
arch/x86/boot/header.S | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
index f912d7770130..e4de831b2f64 100644
--- a/arch/x86/boot/header.S
+++ b/arch/x86/boot/header.S
@@ -59,17 +59,16 @@ start2:
cld

movw $bugger_off_msg, %si
+ movw $bugger_off_msg_size, %cx

msg_loop:
lodsb
- andb %al, %al
- jz bs_die
movb $0xe, %ah
movw $7, %bx
int $0x10
- jmp msg_loop
+ decw %cx
+ jnz msg_loop

-bs_die:
# Allow the user to press a key, then reboot
xorw %ax, %ax
int $0x16
@@ -89,10 +88,9 @@ bs_die:

.section ".bsdata", "a"
bugger_off_msg:
- .ascii "Use a boot loader.\r\n"
- .ascii "\n"
- .ascii "Remove disk and press any key to reboot...\r\n"
- .byte 0
+ .ascii "Use a boot loader. "
+ .ascii "Press a key to reboot"
+ .set bugger_off_msg_size, . - bugger_off_msg

#ifdef CONFIG_EFI_STUB
pe_header:
--
2.37.4