This round attempts to conclude all of the LDT related cleanup with some finally nice looking LDT code, fixes for the UML build, a bugfix for really rather nasty kprobes problems, and the basic framework for an LDT test suite. It is really rather unfortunate that this code is so difficult to test, even with DOSemu and Wine, there are still very nasty corner cases here - anyone want an iret to 16-bit stack test?. I was going to attempt to clean up the math-emu code to make it use the nice new segment and descriptor table accessors, but it quickly became apparent that this would be a long, tedious, error prone process that would eventually result in the death of a large section of my brain. In addition, it is not very fun to test this on the actual hardware it is designed to run on (although I did manage to track down a 386 with detachable i387 coprocessor, the owner is not sure it still boots). Someday it would be nice to have an audit of this code; it appears to be riddled with bugs relating to segmentation, for example it assumes LDT segments on overrides, does not use the mm->context semaphore to protect LDT access, and generally looks scarily out of date in both function and appearance. I also have a makeover for the pgtable.h code. Splitting operations that write hardware page tables into the sub-arch layer was very ugly, hopefully this is a much cleaner approach. There really must be a way for a paravirtualized hypervisor to hook the page table updates, and this appears to be the cleanest solution so far. This patch set is based on 2.6.13-rc6 -mm1 broken out series. It applies and builds i386, x86_64, and um-i386 on 2.6.13-rc5. I've tested PAE and non-PAE SMP kernels and am working on an LDT test suite. Depends on the i386 cleanups, sub-arch movement, and LDT cleanups I've already sent out. -- Zachary Amsden <zach@xxxxxxxxxx> Whee! Actually deliver the signal.