patch-2.1.104 linux/Documentation/exception.txt
Next file: linux/Documentation/filesystems/00-INDEX
Previous file: linux/Documentation/devices.txt
Back to the patch index
Back to the overall index
- Lines: 26
- Date:
Wed May 20 18:54:34 1998
- Orig file:
v2.1.103/linux/Documentation/exception.txt
- Orig date:
Sat May 2 14:19:51 1998
diff -u --recursive --new-file v2.1.103/linux/Documentation/exception.txt linux/Documentation/exception.txt
@@ -36,21 +36,21 @@
do_page_fault first obtains the unaccessible address from the CPU
control register CR2. If the address is within the virtual address
-space of the process, the fault probably occured, because the page
-was not swapped in, write protected or something similiar. However,
+space of the process, the fault probably occurred, because the page
+was not swapped in, write protected or something similar. However,
we are interested in the other case: the address is not valid, there
is no vma that contains this address. In this case, the kernel jumps
to the bad_area label.
There it uses the address of the instruction that caused the exception
-(i.e. regs->eip) to find an address where the excecution can continue
+(i.e. regs->eip) to find an address where the execution can continue
(fixup). If this search is successful, the fault handler modifies the
return address (again regs->eip) and returns. The execution will
continue at the address in fixup.
Where does fixup point to?
-Since we jump to the the contents of fixup, fixup obviously points
+Since we jump to the contents of fixup, fixup obviously points
to executable code. This code is hidden inside the user access macros.
I have picked the get_user macro defined in include/asm/uacess.h as an
example. The definition is somewhat hard to follow, so let's peek at
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov