Cleaning up descriptor patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



So in the page fault handler, we have some tests against kernel / user 
CS which avoid the logic of actually figuring out the segment limit.  I 
propose we use the same trick as arch/i386/mm/extable.c, which simply 
masks the RPL off and combines the segments together to test for faults 
before setting the pnp_bios_is_utter_crap variable.  In this case, we 
can simply test:

if (likely((seg & 0xe8) == __KERNEL_CS)

and be done with any RPL masking at all.  Perhaps this is best put in a 
macro in segment.h,

#define SEGMENT_IS_FLAT_CODE(x)  (((x) & 0xe8) == GDT_ENTRY_KERNEL_CS * 8)

Also, note the segment check for PnP faults is broken, as it masks off 
the TI bit, thus returning false positives for LDT entries (which are 
fortunately unused by the kernel).

Zach


[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux