Messages in this thread | | | Date | Sat, 28 Dec 2013 08:33:08 -0800 | From | Christoph Hellwig <> | Subject | Re: [PATCH 0/8] Update kernel uabi header files for x32 |
| |
On Fri, Dec 27, 2013 at 02:14:16PM -0800, H.J. Lu wrote: > X32 uses the same kernel system call interface as x86-64 for many > system calls. However, "long" is 64-bit for x86-64 and is 32-bit for > x32. Where long or unsigned long are used in struct types for such > system calls, they are wrong for x32. __kernel_[u]long_t is [unsigned] > long for all ABIs other than x32. I am submitting 8 patches to replace > long or unsigned long with __kernel_[u]long_t so that those struct types > can be used with x32 system calls.
Independent on how this fixes things, how does the kernel_long_t name here make any sense?
On x86-64 "kernel" long always is 64 bits wide. The userspace ABI long might be 32 or 64bits wide.
Currently kernel_long_t has almost no uses, so it might be a good time to fix the name, define the rules for it, and last but not least properly document the intent for thse types.
| |