X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fuserprog%2Fexception.c;h=745adaa086e4614245748ddd3cbc6c6262b1f5de;hb=f0ad7eb8b43516c7a2999fd217ec85d954dfc791;hp=8b2e8b641adf7b90168b7b3ff4b3ae81e2bf4d6c;hpb=3c9ec8fccaf30bdf29a8fcdaf129698ef01350cf;p=pintos-anon diff --git a/src/userprog/exception.c b/src/userprog/exception.c index 8b2e8b6..745adaa 100644 --- a/src/userprog/exception.c +++ b/src/userprog/exception.c @@ -132,7 +132,10 @@ page_fault (struct intr_frame *f) /* Obtain faulting address, the virtual address that was accessed to cause the fault. It may point to code or to data. It is not necessarily the address of the instruction - that caused the fault (that's f->eip). */ + that caused the fault (that's f->eip). + See [IA32-v2a] "MOV--Move to/from Control Registers" and + [IA32-v3] 5.14 "Interrupt 14--Page Fault Exception + (#PF)". */ asm ("movl %%cr2, %0" : "=r" (fault_addr)); /* Turn interrupts back on (they were only off so that we could