Date: Tue, 15 Aug 2017 14:03:27 +0000 (UTC) From: Toomas Soome <tsoome@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r322542 - head/sys/boot/efi/loader/arch/amd64 Message-ID: <201708151403.v7FE3R9P075952@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201708151403.v7FE3R9P075952>