• Andi Kleen's avatar
    [PATCH] UID16 fixes · a001f96a
    Andi Kleen authored
    This fixes CONFIG_UID16 problems on x86-64 as discussed earlier.
    
    CONFIG_UID16 now only selects the inclusion of kernel/uid16.c, all
    conversions are triggered dynamically based on type sizes.  This allows
    x86-64 to both include uid16.c for emulation purposes, but not truncate
    uids to 16bit in sys_newstat. 
    
    - Replace the old macros from linux/highuid.h with new SET_UID/SET_GID
      macros that do type checking. Based on Linus' proposal.
    
    - Fix everybody to use them.
    
    - Clean up some cruft in the x86-64 32bit emulation allowed by this
      (other 32bit emulations could be cleaned too, but I'm too lazy for 
      that right now) 
    
    - Add one missing EOVERFLOW check in x86-64 32bit sys_newstat while
      I was at it.
    a001f96a
sys_ia32.c 49.8 KB