Currently the page fault handler on the x86 can get a clobbered value for %cr2 if an interrupt occurs and causes another page fault (interrupt handler touches a vmalloced area for example) before %cr2 is read. This patch changes the page fault and alignment check (currently unused) handlers to interrupt gates so that %cr2 can be read before an interrupt can occur. I'm not certain how much of a problem this really is, but I suspect it could cause random seg faults to user space under heavy interrupt load. Comments are welcome.