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;
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to