svn commit: r322542 - head/sys/boot/efi/loader/arch/amd64
Toomas Soome
tsoome at FreeBSD.org
Tue Aug 15 14:03:28 UTC 2017
Author: tsoome
Date: Tue Aug 15 14:03:26 2017
New Revision: 322542
URL: https://svnweb.freebsd.org/changeset/base/322542
Log:
loader.efi: repace XXX with real comments in trap.c
There are two missing comments marked as XXX in trap.c, fix this.
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D12035
Modified:
head/sys/boot/efi/loader/arch/amd64/trap.c
Modified: head/sys/boot/efi/loader/arch/amd64/trap.c
==============================================================================
--- head/sys/boot/efi/loader/arch/amd64/trap.c Tue Aug 15 14:02:57 2017 (r322541)
+++ head/sys/boot/efi/loader/arch/amd64/trap.c Tue Aug 15 14:03:26 2017 (r322542)
@@ -84,7 +84,11 @@ void
report_exc(struct trapframe *tf)
{
- /* XXX using printf */
+ /*
+ * printf() depends on loader runtime and UEFI firmware health
+ * to produce the console output, in case of exception, the
+ * loader or firmware runtime may fail to support the printf().
+ */
printf("===================================================="
"============================\n");
printf("Exception %u\n", tf->tf_trapno);
@@ -122,7 +126,13 @@ prepare_exception(unsigned idx, uint64_t my_handler,
ist_use_table[fw_idt_e->gd_ist]++;
loader_idt_e->gd_looffset = my_handler;
loader_idt_e->gd_hioffset = my_handler >> 16;
- loader_idt_e->gd_selector = fw_idt_e->gd_selector; /* XXX */
+ /*
+ * We reuse uefi selector for the code segment for the exception
+ * handler code, while the reason for the fault might be the
+ * corruption of that gdt entry. On the other hand, allocating
+ * our own descriptor might be not much better, if gdt is corrupted.
+ */
+ loader_idt_e->gd_selector = fw_idt_e->gd_selector;
loader_idt_e->gd_ist = 0;
loader_idt_e->gd_type = SDT_SYSIGT;
loader_idt_e->gd_dpl = 0;
More information about the svn-src-all
mailing list