git: 700a2c08dcea - main - stand/efi: Use EFI_PAGE_SIZE here, it's more appropriate
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Fri, 30 May 2025 15:57:21 UTC
The branch main has been updated by imp:
URL: https://cgit.FreeBSD.org/src/commit/?id=700a2c08dceab4dc41859e5c1501ec3b186f6cbd
commit 700a2c08dceab4dc41859e5c1501ec3b186f6cbd
Author: Warner Losh <imp@FreeBSD.org>
AuthorDate: 2025-05-30 14:14:15 +0000
Commit: Warner Losh <imp@FreeBSD.org>
CommitDate: 2025-05-30 15:56:50 +0000
stand/efi: Use EFI_PAGE_SIZE here, it's more appropriate
No functional change: We're allocating a page from EFI, which is always
4k on amd64. So, this should always be 4k. PAGE_SIZE usually is this,
but might not be in some cases. For the end of the stack pointer in the
ist1, it should point the architecture's physical page past where we've
allocated. EFI_PAGE_SIZE more faithfully reflects that here since
PAGE_SIZE might not be exactly that in the future (if we had a larger
logical page than physical page). Since the AllocPage interface is in
EFI_PAGE_SIZE pages always, this seems safer. No functional change since
they are both 2096 today.
Sponsored by: Netflix
Reviewed by: tsoome
Differential Revision: https://reviews.freebsd.org/D50584
---
stand/efi/loader/arch/amd64/trap.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/stand/efi/loader/arch/amd64/trap.c b/stand/efi/loader/arch/amd64/trap.c
index 95a42a18f719..61feb76e2dca 100644
--- a/stand/efi/loader/arch/amd64/trap.c
+++ b/stand/efi/loader/arch/amd64/trap.c
@@ -356,7 +356,7 @@ efi_redirect_exceptions(void)
PREPARE_EXCEPTION(19);
PREPARE_EXCEPTION(20);
- exc_rsp = exc_stack_pa + PAGE_SIZE -
+ exc_rsp = exc_stack_pa + EFI_PAGE_SIZE -
(6 /* hw exception frame */ + 3 /* scratch regs */) * 8;
/* Find free IST and use it */
@@ -376,7 +376,7 @@ efi_redirect_exceptions(void)
if (intercepted[i])
loader_idt_e->gd_ist = ist;
}
- (&(tss->tss_ist1))[ist - 1] = exc_stack_pa + PAGE_SIZE;
+ (&(tss->tss_ist1))[ist - 1] = exc_stack_pa + EFI_PAGE_SIZE;
/* Switch to new IDT */
rfl = intr_disable();